1
- const webpack = require ( "webpack" ) ;
2
1
const { isColorSupported } = require ( "colorette" ) ;
3
2
4
3
/** @typedef {import("webpack").Configuration } Configuration */
@@ -12,8 +11,6 @@ const { isColorSupported } = require("colorette");
12
11
/** @typedef {Configuration["stats"] } StatsOptions */
13
12
/** @typedef {{ children: Configuration["stats"][] } } MultiStatsOptions */
14
13
/** @typedef {Exclude<Configuration["stats"], boolean | string | undefined> } NormalizedStatsOptions */
15
- // TODO remove `color` after dropping webpack v4
16
- /** @typedef {{ children: StatsOptions[], colors?: any } } MultiNormalizedStatsOptions */
17
14
18
15
/**
19
16
* @template {IncomingMessage} Request
@@ -33,31 +30,11 @@ function setupHooks(context) {
33
30
context . stats = undefined ;
34
31
}
35
32
36
- // @ts -ignore
37
- const statsForWebpack4 = webpack . Stats && webpack . Stats . presetToOptions ;
38
-
39
33
/**
40
34
* @param {Configuration["stats"] } statsOptions
41
35
* @returns {NormalizedStatsOptions }
42
36
*/
43
37
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
-
61
38
if ( typeof statsOptions === "undefined" ) {
62
39
// eslint-disable-next-line no-param-reassign
63
40
statsOptions = { preset : "normal" } ;
@@ -99,7 +76,7 @@ function setupHooks(context) {
99
76
) ;
100
77
101
78
/**
102
- * @type {StatsOptions | MultiStatsOptions | NormalizedStatsOptions | MultiNormalizedStatsOptions }
79
+ * @type {StatsOptions | MultiStatsOptions | NormalizedStatsOptions }
103
80
*/
104
81
let statsOptions ;
105
82
@@ -122,7 +99,7 @@ function setupHooks(context) {
122
99
}
123
100
124
101
if ( isMultiCompilerMode ) {
125
- /** @type {MultiNormalizedStatsOptions } */
102
+ /** @type {MultiStatsOptions } */
126
103
( statsOptions ) . children =
127
104
/** @type {MultiStatsOptions } */
128
105
( statsOptions ) . children . map (
@@ -153,24 +130,6 @@ function setupHooks(context) {
153
130
}
154
131
}
155
132
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
-
174
133
const printedStats = stats . toString ( statsOptions ) ;
175
134
176
135
// Avoid extra empty line when `stats: 'none'`
0 commit comments