1- const webpack = require ( "webpack" ) ;
21const { isColorSupported } = require ( "colorette" ) ;
32
43/** @typedef {import("webpack").Configuration } Configuration */
@@ -12,8 +11,6 @@ const { isColorSupported } = require("colorette");
1211/** @typedef {Configuration["stats"] } StatsOptions */
1312/** @typedef {{ children: Configuration["stats"][] } } MultiStatsOptions */
1413/** @typedef {Exclude<Configuration["stats"], boolean | string | undefined> } NormalizedStatsOptions */
15- // TODO remove `color` after dropping webpack v4
16- /** @typedef {{ children: StatsOptions[], colors?: any } } MultiNormalizedStatsOptions */
1714
1815/**
1916 * @template {IncomingMessage} Request
@@ -33,31 +30,11 @@ function setupHooks(context) {
3330 context . stats = undefined ;
3431 }
3532
36- // @ts -ignore
37- const statsForWebpack4 = webpack . Stats && webpack . Stats . presetToOptions ;
38-
3933 /**
4034 * @param {Configuration["stats"] } statsOptions
4135 * @returns {NormalizedStatsOptions }
4236 */
4337 function normalizeStatsOptions ( statsOptions ) {
44- if ( statsForWebpack4 ) {
45- if ( typeof statsOptions === "undefined" ) {
46- // eslint-disable-next-line no-param-reassign
47- statsOptions = { } ;
48- } else if (
49- typeof statsOptions === "boolean" ||
50- typeof statsOptions === "string"
51- ) {
52- // @ts -ignore
53- // eslint-disable-next-line no-param-reassign
54- statsOptions = webpack . Stats . presetToOptions ( statsOptions ) ;
55- }
56-
57- // @ts -ignore
58- return statsOptions ;
59- }
60-
6138 if ( typeof statsOptions === "undefined" ) {
6239 // eslint-disable-next-line no-param-reassign
6340 statsOptions = { preset : "normal" } ;
@@ -99,7 +76,7 @@ function setupHooks(context) {
9976 ) ;
10077
10178 /**
102- * @type {StatsOptions | MultiStatsOptions | NormalizedStatsOptions | MultiNormalizedStatsOptions }
79+ * @type {StatsOptions | MultiStatsOptions | NormalizedStatsOptions }
10380 */
10481 let statsOptions ;
10582
@@ -122,7 +99,7 @@ function setupHooks(context) {
12299 }
123100
124101 if ( isMultiCompilerMode ) {
125- /** @type {MultiNormalizedStatsOptions } */
102+ /** @type {MultiStatsOptions } */
126103 ( statsOptions ) . children =
127104 /** @type {MultiStatsOptions } */
128105 ( statsOptions ) . children . map (
@@ -153,24 +130,6 @@ function setupHooks(context) {
153130 }
154131 }
155132
156- // TODO webpack@4 doesn't support `{ children: [{ colors: true }, { colors: true }] }` for stats
157- if (
158- /** @type {MultiCompiler } */
159- ( compiler ) . compilers &&
160- statsForWebpack4
161- ) {
162- /** @type {MultiNormalizedStatsOptions } */
163- ( statsOptions ) . colors =
164- /** @type {MultiNormalizedStatsOptions } */
165- ( statsOptions ) . children . some (
166- /**
167- * @param {StatsOptions } child
168- */
169- // @ts -ignore
170- ( child ) => child . colors
171- ) ;
172- }
173-
174133 const printedStats = stats . toString ( statsOptions ) ;
175134
176135 // Avoid extra empty line when `stats: 'none'`
0 commit comments