From 60d4605173c281bd705cedbb03f19d239a2ef76e Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Mon, 8 Mar 2021 09:06:04 +0100 Subject: [PATCH 1/3] fix types: accept a readonly array for configuration options --- lib/webpack.js | 14 ++++++++------ types.d.ts | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/webpack.js b/lib/webpack.js index 810bb960f61..12ebd78f798 100644 --- a/lib/webpack.js +++ b/lib/webpack.js @@ -33,7 +33,7 @@ const validateSchema = require("./validateSchema"); */ /** - * @param {WebpackOptions[]} childOptions options array + * @param {ReadonlyArray} childOptions options array * @param {MultiCompilerOptions} options options * @returns {MultiCompiler} a multi-compiler */ @@ -89,14 +89,14 @@ const createCompiler = rawOptions => { /** * @callback WebpackFunctionMulti - * @param {WebpackOptions[] & MultiCompilerOptions} options options objects + * @param {ReadonlyArray & MultiCompilerOptions} options options objects * @param {Callback=} callback callback * @returns {MultiCompiler} the multi compiler object */ const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ ( /** - * @param {WebpackOptions | (WebpackOptions[] & MultiCompilerOptions)} options options + * @param {WebpackOptions | (ReadonlyArray & MultiCompilerOptions)} options options * @param {Callback & Callback=} callback callback * @returns {Compiler | MultiCompiler} */ @@ -114,10 +114,12 @@ const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ ( watch = options.some(options => options.watch); watchOptions = options.map(options => options.watchOptions || {}); } else { + /** @type {WebpackOptions} */ + const webpackOptions = /** @type {WebpackOptions} */ options; /** @type {Compiler} */ - compiler = createCompiler(options); - watch = options.watch; - watchOptions = options.watchOptions || {}; + compiler = createCompiler(webpackOptions); + watch = webpackOptions.watch; + watchOptions = webpackOptions.watchOptions || {}; } return { compiler, watch, watchOptions }; }; diff --git a/types.d.ts b/types.d.ts index bccd6f642a2..6fa647b36ef 100644 --- a/types.d.ts +++ b/types.d.ts @@ -11169,14 +11169,14 @@ declare function exports( callback?: CallbackWebpack ): Compiler; declare function exports( - options: Configuration[] & MultiCompilerOptions, + options: ReadonlyArray & MultiCompilerOptions, callback?: CallbackWebpack ): MultiCompiler; declare namespace exports { export const webpack: { (options: Configuration, callback?: CallbackWebpack): Compiler; ( - options: Configuration[] & MultiCompilerOptions, + options: ReadonlyArray & MultiCompilerOptions, callback?: CallbackWebpack ): MultiCompiler; }; From cc1b41420c84752c461664c741a971193bc8147e Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Thu, 1 Apr 2021 23:52:21 +0200 Subject: [PATCH 2/3] Update lib/webpack.js Co-authored-by: Tobias Koppers --- lib/webpack.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/webpack.js b/lib/webpack.js index 12ebd78f798..a5d4bffc9e4 100644 --- a/lib/webpack.js +++ b/lib/webpack.js @@ -114,8 +114,7 @@ const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ ( watch = options.some(options => options.watch); watchOptions = options.map(options => options.watchOptions || {}); } else { - /** @type {WebpackOptions} */ - const webpackOptions = /** @type {WebpackOptions} */ options; + const webpackOptions = /** @type {WebpackOptions} */ (options); /** @type {Compiler} */ compiler = createCompiler(webpackOptions); watch = webpackOptions.watch; From 5f7394b76f7811af9d2aa20acab696321987826b Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Tue, 18 May 2021 17:10:36 +0200 Subject: [PATCH 3/3] fix type error --- lib/webpack.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/webpack.js b/lib/webpack.js index 8368b444ee8..82f0c754c1f 100644 --- a/lib/webpack.js +++ b/lib/webpack.js @@ -115,7 +115,10 @@ const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ ( let watchOptions; if (Array.isArray(options)) { /** @type {MultiCompiler} */ - compiler = createMultiCompiler(options, options); + compiler = createMultiCompiler( + options, + /** @type {MultiCompilerOptions} */ (options) + ); watch = options.some(options => options.watch); watchOptions = options.map(options => options.watchOptions || {}); } else {