From bddd1ce53eaafb5db2d8a6f8291bd140b0e7dea2 Mon Sep 17 00:00:00 2001 From: Aaron Reisman Date: Mon, 6 Apr 2020 08:58:35 -0700 Subject: [PATCH] Update compiler.ts Improve TypeScript typings (#11074) Improve TypeScript typings --- packages/next/build/compiler.ts | 50 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/packages/next/build/compiler.ts b/packages/next/build/compiler.ts index dbfa2e126cb6d..e1396c7878359 100644 --- a/packages/next/build/compiler.ts +++ b/packages/next/build/compiler.ts @@ -1,50 +1,48 @@ -import webpack, { Stats } from 'webpack' +import webpack, { Stats, Configuration } from 'webpack' export type CompilerResult = { - errors: Error[] - warnings: Error[] + errors: string[] + warnings: string[] } function generateStats(result: CompilerResult, stat: Stats): CompilerResult { - const { errors, warnings } = stat.toJson({ - all: false, - warnings: true, - errors: true, - }) + const { errors, warnings } = stat.toJson('errors-warnings') if (errors.length > 0) { - result.errors.push(...(errors as any)) + result.errors.push(...errors) } if (warnings.length > 0) { - result.warnings.push(...(warnings as any)) + result.warnings.push(...warnings) } return result } export function runCompiler( - config: webpack.Configuration | webpack.Configuration[] + config: Configuration | Configuration[] ): Promise { return new Promise(async (resolve, reject) => { const compiler = webpack(config) - compiler.run((err: Error, statsOrMultiStats: any) => { - if (err) { - return reject(err) - } + compiler.run( + (err: Error, statsOrMultiStats: { stats: Stats[] } | Stats) => { + if (err) { + return reject(err) + } - if (statsOrMultiStats.stats) { - const result: CompilerResult = statsOrMultiStats.stats.reduce( - generateStats, - { errors: [], warnings: [] } + if ('stats' in statsOrMultiStats) { + const result: CompilerResult = statsOrMultiStats.stats.reduce( + generateStats, + { errors: [], warnings: [] } + ) + return resolve(result) + } + + const result = generateStats( + { errors: [], warnings: [] }, + statsOrMultiStats ) return resolve(result) } - - const result = generateStats( - { errors: [], warnings: [] }, - statsOrMultiStats - ) - return resolve(result) - }) + ) }) }