Skip to content

Commit a3d7839

Browse files
fix: types for multi stats (#20556)
1 parent b8e9b05 commit a3d7839

File tree

4 files changed

+94
-44
lines changed

4 files changed

+94
-44
lines changed

.changeset/fine-lines-grin.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"webpack": patch
3+
---
4+
5+
Fixed types for multi stats.

lib/MultiStats.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
const identifierUtils = require("./util/identifier");
99

1010
/** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
11+
/** @typedef {import("../declarations/WebpackOptions").StatsValue} StatsValue */
1112
/** @typedef {import("./Compilation").CreateStatsOptionsContext} CreateStatsOptionsContext */
1213
/** @typedef {import("./Compilation").NormalizedStatsOptions} NormalizedStatsOptions */
1314
/** @typedef {import("./Stats")} Stats */
@@ -25,8 +26,7 @@ const indent = (str, prefix) => {
2526
return prefix + rem;
2627
};
2728

28-
/** @typedef {undefined | string | boolean | StatsOptions} ChildrenStatsOptions */
29-
/** @typedef {Omit<StatsOptions, "children"> & { children?: ChildrenStatsOptions | ChildrenStatsOptions[] }} MultiStatsOptions */
29+
/** @typedef {StatsOptions} MultiStatsOptions */
3030
/** @typedef {{ version: boolean, hash: boolean, errorsCount: boolean, warningsCount: boolean, errors: boolean, warnings: boolean, children: NormalizedStatsOptions[] }} ChildOptions */
3131

3232
class MultiStats {
@@ -56,7 +56,7 @@ class MultiStats {
5656
}
5757

5858
/**
59-
* @param {undefined | string | boolean | MultiStatsOptions} options stats options
59+
* @param {undefined | StatsValue} options stats options
6060
* @param {CreateStatsOptionsContext} context context
6161
* @returns {ChildOptions} context context
6262
*/
@@ -109,7 +109,7 @@ class MultiStats {
109109
}
110110

111111
/**
112-
* @param {(string | boolean | MultiStatsOptions)=} options stats options
112+
* @param {StatsValue=} options stats options
113113
* @returns {StatsCompilation} json output
114114
*/
115115
toJson(options) {
@@ -184,7 +184,7 @@ class MultiStats {
184184
}
185185

186186
/**
187-
* @param {(string | boolean | MultiStatsOptions)=} options stats options
187+
* @param {StatsValue=} options stats options
188188
* @returns {string} string output
189189
*/
190190
toString(options) {

lib/Stats.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"use strict";
77

88
/** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
9+
/** @typedef {import("../declarations/WebpackOptions").StatsValue} StatsValue */
910
/** @typedef {import("./Compilation")} Compilation */
1011
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */
1112

@@ -50,7 +51,7 @@ class Stats {
5051
}
5152

5253
/**
53-
* @param {(string | boolean | StatsOptions)=} options stats options
54+
* @param {StatsValue=} options stats options
5455
* @returns {StatsCompilation} json output
5556
*/
5657
toJson(options) {
@@ -66,7 +67,7 @@ class Stats {
6667
}
6768

6869
/**
69-
* @param {(string | boolean | StatsOptions)=} options stats options
70+
* @param {StatsValue=} options stats options
7071
* @returns {string} string output
7172
*/
7273
toString(options) {

types.d.ts

Lines changed: 81 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,7 +1285,6 @@ declare interface CallbackWebpackFunction_2<T, R = void> {
12851285
(err: null | Error, result?: T): R;
12861286
}
12871287
type Cell<T> = undefined | T;
1288-
type ChildrenStatsOptions = undefined | string | boolean | StatsOptions;
12891288
declare class Chunk {
12901289
constructor(name?: null | string, backCompat?: boolean);
12911290
id: null | string | number;
@@ -11583,12 +11582,33 @@ declare abstract class MultiStats {
1158311582
get hash(): string;
1158411583
hasErrors(): boolean;
1158511584
hasWarnings(): boolean;
11586-
toJson(options?: string | boolean | MultiStatsOptions): StatsCompilation;
11587-
toString(options?: string | boolean | MultiStatsOptions): string;
11585+
toJson(
11586+
options?:
11587+
| boolean
11588+
| StatsOptions
11589+
| "none"
11590+
| "summary"
11591+
| "errors-only"
11592+
| "errors-warnings"
11593+
| "minimal"
11594+
| "normal"
11595+
| "detailed"
11596+
| "verbose"
11597+
): StatsCompilation;
11598+
toString(
11599+
options?:
11600+
| boolean
11601+
| StatsOptions
11602+
| "none"
11603+
| "summary"
11604+
| "errors-only"
11605+
| "errors-warnings"
11606+
| "minimal"
11607+
| "normal"
11608+
| "detailed"
11609+
| "verbose"
11610+
): string;
1158811611
}
11589-
type MultiStatsOptions = Omit<StatsOptions, "children"> & {
11590-
children?: string | boolean | StatsOptions | ChildrenStatsOptions[];
11591-
};
1159211612
declare abstract class MultiWatching {
1159311613
watchings: Watching[];
1159411614
compiler: MultiCompiler;
@@ -12274,43 +12294,43 @@ declare interface NormalizedModules {
1227412294
type NormalizedStatsOptions = KnownNormalizedStatsOptions &
1227512295
Omit<
1227612296
StatsOptions,
12277-
| "assetsSort"
12278-
| "assetsSpace"
12279-
| "cachedAssets"
12280-
| "cachedModules"
12281-
| "chunkGroupAuxiliary"
12282-
| "chunkGroupChildren"
12283-
| "chunkGroupMaxAssets"
12297+
| "context"
1228412298
| "chunkGroups"
12285-
| "chunkModulesSpace"
12299+
| "requestShortener"
1228612300
| "chunksSort"
12287-
| "context"
12288-
| "dependentModules"
12289-
| "entrypoints"
12290-
| "excludeAssets"
12291-
| "excludeModules"
12301+
| "modulesSort"
12302+
| "chunkModulesSort"
12303+
| "nestedModulesSort"
12304+
| "assetsSort"
12305+
| "ids"
12306+
| "cachedAssets"
1229212307
| "groupAssetsByEmitStatus"
12293-
| "groupAssetsByExtension"
1229412308
| "groupAssetsByPath"
12295-
| "groupModulesByAttributes"
12309+
| "groupAssetsByExtension"
12310+
| "assetsSpace"
12311+
| "excludeAssets"
12312+
| "excludeModules"
12313+
| "warningsFilter"
12314+
| "cachedModules"
12315+
| "orphanModules"
12316+
| "dependentModules"
12317+
| "runtimeModules"
1229612318
| "groupModulesByCacheStatus"
12297-
| "groupModulesByExtension"
1229812319
| "groupModulesByLayer"
12320+
| "groupModulesByAttributes"
1229912321
| "groupModulesByPath"
12322+
| "groupModulesByExtension"
1230012323
| "groupModulesByType"
12301-
| "ids"
12324+
| "entrypoints"
12325+
| "chunkGroupAuxiliary"
12326+
| "chunkGroupChildren"
12327+
| "chunkGroupMaxAssets"
12328+
| "modulesSpace"
12329+
| "chunkModulesSpace"
12330+
| "nestedModulesSpace"
1230212331
| "logging"
1230312332
| "loggingDebug"
1230412333
| "loggingTrace"
12305-
| "modulesSort"
12306-
| "modulesSpace"
12307-
| "nestedModulesSpace"
12308-
| "orphanModules"
12309-
| "runtimeModules"
12310-
| "warningsFilter"
12311-
| "requestShortener"
12312-
| "chunkModulesSort"
12313-
| "nestedModulesSort"
1231412334
| "_env"
1231512335
> &
1231612336
Record<string, any>;
@@ -14145,7 +14165,7 @@ declare class ProgressPlugin {
1414514165
showModules?: boolean;
1414614166
showDependencies?: boolean;
1414714167
showActiveModules?: boolean;
14148-
percentBy?: null | "modules" | "entries" | "dependencies";
14168+
percentBy?: null | "entries" | "modules" | "dependencies";
1414914169
apply(compiler: MultiCompiler | Compiler): void;
1415014170
static getReporter(
1415114171
compiler: Compiler
@@ -14210,7 +14230,7 @@ declare interface ProgressPluginOptions {
1421014230
/**
1421114231
* Collect percent algorithm. By default it calculates by a median from modules, entries and dependencies percent.
1421214232
*/
14213-
percentBy?: null | "modules" | "entries" | "dependencies";
14233+
percentBy?: null | "entries" | "modules" | "dependencies";
1421414234

1421514235
/**
1421614236
* Collect profile data for progress steps. Default: false.
@@ -17768,8 +17788,32 @@ declare class Stats {
1776817788
get endTime(): number;
1776917789
hasWarnings(): boolean;
1777017790
hasErrors(): boolean;
17771-
toJson(options?: string | boolean | StatsOptions): StatsCompilation;
17772-
toString(options?: string | boolean | StatsOptions): string;
17791+
toJson(
17792+
options?:
17793+
| boolean
17794+
| StatsOptions
17795+
| "none"
17796+
| "summary"
17797+
| "errors-only"
17798+
| "errors-warnings"
17799+
| "minimal"
17800+
| "normal"
17801+
| "detailed"
17802+
| "verbose"
17803+
): StatsCompilation;
17804+
toString(
17805+
options?:
17806+
| boolean
17807+
| StatsOptions
17808+
| "none"
17809+
| "summary"
17810+
| "errors-only"
17811+
| "errors-warnings"
17812+
| "minimal"
17813+
| "normal"
17814+
| "detailed"
17815+
| "verbose"
17816+
): string;
1777317817
}
1777417818
type StatsAsset = KnownStatsAsset & Record<string, any>;
1777517819
type StatsChunk = KnownStatsChunk & Record<string, any>;
@@ -20115,7 +20159,7 @@ declare namespace exports {
2011520159
MultiCompilerOptions,
2011620160
MultiConfiguration,
2011720161
MultiStats,
20118-
MultiStatsOptions,
20162+
StatsOptions as MultiStatsOptions,
2011920163
ResolveData,
2012020164
ParserState,
2012120165
ResolvePluginInstance,

0 commit comments

Comments
 (0)