Skip to content

Commit c49bc9c

Browse files
refactor: name build info/meta types after their module class
Rename CssBuildInfo -> CssModuleBuildInfo, JavascriptBuildInfo -> JavascriptModuleBuildInfo, AssetBuildInfo -> AssetModuleBuildInfo, JsonBuildInfo -> JsonModuleBuildInfo, HtmlBuildInfo -> HtmlModuleBuildInfo and SyncWasmBuildMeta -> SyncWasmModuleBuildMeta (incl. their Known* variants) so every type follows the <ClassName>BuildInfo/BuildMeta pattern already used by NormalModule, ExternalModule, ContextModule and ConcatenatedModule. https://claude.ai/code/session_01XLFFANdnYhzJfJW4MxNoAP
1 parent 811cab7 commit c49bc9c

35 files changed

Lines changed: 191 additions & 173 deletions

lib/APIPlugin.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const GetFullHashRuntimeModule = require("./runtime/GetFullHashRuntimeModule");
3030
/** @typedef {import("./Compiler")} Compiler */
3131
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
3232
/** @typedef {import("./Module").BuildInfo} BuildInfo */
33-
/** @typedef {import("./javascript/JavascriptModule").JavascriptBuildInfo} JavascriptBuildInfo */
33+
/** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildInfo} JavascriptModuleBuildInfo */
3434
/** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
3535
/** @typedef {import("./javascript/JavascriptParser").Range} Range */
3636

@@ -192,7 +192,7 @@ class APIPlugin {
192192
PLUGIN_NAME,
193193
(source, module, renderContext) => {
194194
if (
195-
/** @type {JavascriptBuildInfo} */ (module.buildInfo)
195+
/** @type {JavascriptModuleBuildInfo} */ (module.buildInfo)
196196
.needCreateRequire
197197
) {
198198
const chunkInitFragments = [
@@ -254,7 +254,7 @@ class APIPlugin {
254254

255255
if (key === "__non_webpack_require__" && moduleOutput) {
256256
if (nodeTarget) {
257-
/** @type {JavascriptBuildInfo} */
257+
/** @type {JavascriptModuleBuildInfo} */
258258
(parser.state.module.buildInfo).needCreateRequire = true;
259259
} else {
260260
const warning = new WebpackError(
@@ -318,7 +318,7 @@ class APIPlugin {
318318
parser.hooks.expression
319319
.for("__webpack_module__.id")
320320
.tap(PLUGIN_NAME, (expr) => {
321-
/** @type {JavascriptBuildInfo} */
321+
/** @type {JavascriptModuleBuildInfo} */
322322
(parser.state.module.buildInfo).moduleConcatenationBailout =
323323
"__webpack_module__.id";
324324
const moduleArgument = parser.state.module.moduleArgument;
@@ -349,7 +349,7 @@ class APIPlugin {
349349
parser.hooks.expression
350350
.for("__webpack_module__")
351351
.tap(PLUGIN_NAME, (expr) => {
352-
/** @type {JavascriptBuildInfo} */
352+
/** @type {JavascriptModuleBuildInfo} */
353353
(parser.state.module.buildInfo).moduleConcatenationBailout =
354354
"__webpack_module__";
355355
const moduleArgument = parser.state.module.moduleArgument;

lib/ChunkGraph.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const {
4545
/** @typedef {import("./RuntimeModule")} RuntimeModule */
4646
/** @typedef {import("./util/Hash").HashFunction} HashFunction */
4747
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
48-
/** @typedef {import("./javascript/JavascriptModule").JavascriptBuildMeta} JavascriptBuildMeta */
48+
/** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
4949

5050
/** @type {ReadonlySet<string>} */
5151
const EMPTY_SET = new Set();
@@ -1833,7 +1833,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
18331833
};
18341834
const strict =
18351835
module.buildMeta &&
1836-
/** @type {JavascriptBuildMeta} */ (module.buildMeta).strictHarmonyModule;
1836+
/** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
1837+
.strictHarmonyModule;
18371838
return cgm.graphHashesWithConnections.provide(runtime, () => {
18381839
const graphHash = this._getModuleGraphHashBigInt(
18391840
cgm,

lib/HotModuleReplacementPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const {
5656
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
5757
/** @typedef {import("./Module")} Module */
5858
/** @typedef {import("./Module").BuildInfo} BuildInfo */
59-
/** @typedef {import("./css/CssModule").CssBuildMeta} CssBuildMeta */
59+
/** @typedef {import("./css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
6060
/** @typedef {import("./RuntimeModule")} RuntimeModule */
6161
/** @typedef {import("./javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
6262
/** @typedef {import("./javascript/JavascriptParserHelpers").Range} Range */
@@ -404,7 +404,7 @@ class HotModuleReplacementPlugin {
404404
for (const innerModule of m.modules) {
405405
if (
406406
innerModule.buildMeta &&
407-
/** @type {CssBuildMeta} */ (innerModule.buildMeta)
407+
/** @type {CssModuleBuildMeta} */ (innerModule.buildMeta)
408408
.needIdInConcatenation
409409
) {
410410
const innerId = chunkGraph.getModuleId(innerModule);

lib/JavascriptMetaInfoPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const { getInnerGraphUtils } = require("./optimize/InnerGraph");
1414

1515
/** @typedef {import("./Compiler")} Compiler */
1616
/** @typedef {import("./Module").BuildInfo} BuildInfo */
17-
/** @typedef {import("./javascript/JavascriptModule").JavascriptBuildInfo} JavascriptBuildInfo */
17+
/** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildInfo} JavascriptModuleBuildInfo */
1818
/** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
1919

2020
const PLUGIN_NAME = "JavascriptMetaInfoPlugin";
@@ -38,7 +38,7 @@ class JavascriptMetaInfoPlugin {
3838
const handler = (parser) => {
3939
parser.hooks.call.for("eval").tap(PLUGIN_NAME, () => {
4040
const buildInfo =
41-
/** @type {JavascriptBuildInfo} */
41+
/** @type {JavascriptModuleBuildInfo} */
4242
(parser.state.module.buildInfo);
4343
buildInfo.moduleConcatenationBailout = "eval()";
4444
const currentSymbol = innerGraph.getTopLevelSymbol(parser.state);

lib/asset/AssetGenerator.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const getMimeTypes = memoize(() => require("../util/mimeTypes"));
5050
/** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
5151
/** @typedef {import("../Module")} Module */
5252
/** @typedef {import("../Module").NameForCondition} NameForCondition */
53-
/** @typedef {import("./AssetModule").AssetBuildInfo} AssetBuildInfo */
53+
/** @typedef {import("./AssetModule").AssetModuleBuildInfo} AssetModuleBuildInfo */
5454
/** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
5555
/** @typedef {import("../Module").SourceType} SourceType */
5656
/** @typedef {import("../Module").SourceTypes} SourceTypes */
@@ -565,7 +565,7 @@ class AssetGenerator extends Generator {
565565
const data = getData ? getData() : undefined;
566566

567567
if (
568-
/** @type {AssetBuildInfo} */
568+
/** @type {AssetModuleBuildInfo} */
569569
(module.buildInfo).dataUrl &&
570570
needContent
571571
) {
@@ -589,7 +589,7 @@ class AssetGenerator extends Generator {
589589
data.set("contentHash", contentHash);
590590
}
591591

592-
/** @type {AssetBuildInfo} */
592+
/** @type {AssetModuleBuildInfo} */
593593
(module.buildInfo).fullContentHash = fullContentHash;
594594

595595
const { originalFilename, filename, assetInfo } =
@@ -633,10 +633,10 @@ class AssetGenerator extends Generator {
633633
// Due to code generation caching module.buildInfo.XXX can't used to store such information
634634
// It need to be stored in the code generation results instead, where it's cached too
635635
// TODO webpack 6 For back-compat reasons we also store in on module.buildInfo
636-
/** @type {AssetBuildInfo} */
636+
/** @type {AssetModuleBuildInfo} */
637637
(module.buildInfo).filename = filename;
638638

639-
/** @type {AssetBuildInfo} */
639+
/** @type {AssetModuleBuildInfo} */
640640
(module.buildInfo).assetInfo = newAssetInfo;
641641

642642
content = assetPath;
@@ -707,7 +707,7 @@ class AssetGenerator extends Generator {
707707

708708
if (
709709
(module.buildInfo &&
710-
/** @type {AssetBuildInfo} */ (module.buildInfo).dataUrl) ||
710+
/** @type {AssetModuleBuildInfo} */ (module.buildInfo).dataUrl) ||
711711
this.emit === false
712712
) {
713713
if (sourceTypes.size > 0) {
@@ -767,7 +767,7 @@ class AssetGenerator extends Generator {
767767
default:
768768
if (
769769
module.buildInfo &&
770-
/** @type {AssetBuildInfo} */ (module.buildInfo).dataUrl
770+
/** @type {AssetModuleBuildInfo} */ (module.buildInfo).dataUrl
771771
) {
772772
const originalSource = module.originalSource();
773773

@@ -796,7 +796,7 @@ class AssetGenerator extends Generator {
796796
const { module } = updateHashContext;
797797

798798
if (
799-
/** @type {AssetBuildInfo} */
799+
/** @type {AssetModuleBuildInfo} */
800800
(module.buildInfo).dataUrl
801801
) {
802802
hash.update("data-url");

lib/asset/AssetModule.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ const makeSerializable = require("../util/makeSerializable");
1313

1414
/**
1515
* Defines the build info properties specific to asset modules.
16-
* @typedef {object} KnownAssetBuildInfo
16+
* @typedef {object} KnownAssetModuleBuildInfo
1717
* @property {boolean=} dataUrl whether the asset is inlined as a data url
1818
* @property {string=} filename
1919
* @property {AssetInfo=} assetInfo
2020
* @property {string=} fullContentHash
2121
*/
2222

23-
/** @typedef {NormalModuleBuildInfo & KnownAssetBuildInfo} AssetBuildInfo */
23+
/** @typedef {NormalModuleBuildInfo & KnownAssetModuleBuildInfo} AssetModuleBuildInfo */
2424

2525
/**
2626
* Module class for all `asset/*` modules. Asset-specific properties should live here instead of `NormalModule`.
@@ -34,7 +34,7 @@ class AssetModule extends NormalModule {
3434
super(options);
3535

3636
// Redeclared with the asset specific shape
37-
/** @type {AssetBuildInfo | undefined} */
37+
/** @type {AssetModuleBuildInfo | undefined} */
3838
this.buildInfo = undefined;
3939
if (sideEffectFree) {
4040
this.factoryMeta = { sideEffectFree: true };

lib/asset/AssetModulesPlugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const memoize = require("../util/memoize");
2323
/** @typedef {import("../../declarations/WebpackOptions").AssetModuleFilename} AssetModuleFilename */
2424
/** @typedef {import("../Compilation").AssetInfo} AssetInfo */
2525
/** @typedef {import("../Compiler")} Compiler */
26-
/** @typedef {import("./AssetModule").AssetBuildInfo} AssetBuildInfo */
26+
/** @typedef {import("./AssetModule").AssetModuleBuildInfo} AssetModuleBuildInfo */
2727
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
2828
/** @typedef {import("../NormalModule")} NormalModule */
2929

@@ -275,7 +275,7 @@ class AssetModulesPlugin {
275275
module,
276276
chunk.runtime
277277
);
278-
const buildInfo = /** @type {AssetBuildInfo} */ (
278+
const buildInfo = /** @type {AssetModuleBuildInfo} */ (
279279
module.buildInfo
280280
);
281281
const data =

lib/asset/AssetParser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const Parser = require("../Parser");
1010
/** @typedef {import("../../declarations/WebpackOptions").AssetParserDataUrlOptions} AssetParserDataUrlOptions */
1111
/** @typedef {import("../../declarations/WebpackOptions").AssetParserOptions} AssetParserOptions */
1212
/** @typedef {import("../Module")} Module */
13-
/** @typedef {import("./AssetModule").AssetBuildInfo} AssetBuildInfo */
13+
/** @typedef {import("./AssetModule").AssetModuleBuildInfo} AssetModuleBuildInfo */
1414
/** @typedef {import("../Module").BuildMeta} BuildMeta */
1515
/** @typedef {import("../Parser").ParserState} ParserState */
1616
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
@@ -40,7 +40,7 @@ class AssetParser extends Parser {
4040
}
4141

4242
const buildInfo =
43-
/** @type {AssetBuildInfo} */
43+
/** @type {AssetModuleBuildInfo} */
4444
(state.module.buildInfo);
4545
buildInfo.strict = true;
4646
const buildMeta =

lib/css/CssGenerator.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ const {
5757
/** @typedef {import("../util/Hash")} Hash */
5858
/** @typedef {import("./CssModulesPlugin").ModuleFactoryCacheEntry} ModuleFactoryCacheEntry */
5959
/** @typedef {import("./CssModule")} CssModule */
60-
/** @typedef {import("./CssModule").CssBuildInfo} CssBuildInfo */
61-
/** @typedef {import("./CssModule").CssBuildMeta} CssBuildMeta */
60+
/** @typedef {import("./CssModule").CssModuleBuildInfo} CssModuleBuildInfo */
61+
/** @typedef {import("./CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
6262
/** @typedef {import("../Compilation")} Compilation */
6363
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
6464
/** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
@@ -201,7 +201,7 @@ class CssGenerator extends Generator {
201201
visited.add(module);
202202
const own =
203203
module.buildInfo &&
204-
/** @type {CssBuildInfo} */ (module.buildInfo).charset;
204+
/** @type {CssModuleBuildInfo} */ (module.buildInfo).charset;
205205
if (own !== undefined) return own;
206206
if (exportType !== "text") return undefined;
207207
for (const dep of module.dependencies) {
@@ -526,7 +526,7 @@ class CssGenerator extends Generator {
526526
case JAVASCRIPT_TYPE: {
527527
const compilation = generateContext.runtimeTemplate.compilation;
528528
const devtool = compilation.options.devtool;
529-
const isCssModule = /** @type {CssBuildMeta} */ (module.buildMeta)
529+
const isCssModule = /** @type {CssModuleBuildMeta} */ (module.buildMeta)
530530
.isCssModule;
531531

532532
const generateContentCode = () => {
@@ -635,7 +635,7 @@ class CssGenerator extends Generator {
635635
/** @type {Source | null} */
636636
const defaultExport = generateJSDefaultExport();
637637

638-
/** @type {CssBuildInfo} */
638+
/** @type {CssModuleBuildInfo} */
639639
(module.buildInfo).cssData = cssData;
640640

641641
// Required for HMR
@@ -975,12 +975,15 @@ class CssGenerator extends Generator {
975975
getSize(module, type) {
976976
switch (type) {
977977
case JAVASCRIPT_TYPE: {
978-
const cssData = /** @type {CssBuildInfo} */ (module.buildInfo).cssData;
978+
const cssData = /** @type {CssModuleBuildInfo} */ (module.buildInfo)
979+
.cssData;
979980
if (!cssData) {
980981
return 42;
981982
}
982983
if (cssData.exports.size === 0) {
983-
if (/** @type {CssBuildMeta} */ (module.buildMeta).isCssModule) {
984+
if (
985+
/** @type {CssModuleBuildMeta} */ (module.buildMeta).isCssModule
986+
) {
984987
return 42;
985988
}
986989
return 0;

lib/css/CssModule.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@ const makeSerializable = require("../util/makeSerializable");
2828

2929
/**
3030
* Defines the build info properties specific to css modules.
31-
* @typedef {object} KnownCssBuildInfo
31+
* @typedef {object} KnownCssModuleBuildInfo
3232
* @property {CssData=} cssData
3333
* @property {string=} charset charset at-rule
3434
*/
3535

36-
/** @typedef {NormalModuleBuildInfo & KnownCssBuildInfo} CssBuildInfo */
36+
/** @typedef {NormalModuleBuildInfo & KnownCssModuleBuildInfo} CssModuleBuildInfo */
3737

3838
/**
3939
* Defines the build meta properties specific to css modules.
40-
* @typedef {object} KnownCssBuildMeta
40+
* @typedef {object} KnownCssModuleBuildMeta
4141
* @property {boolean=} isCssModule
4242
* @property {boolean=} needIdInConcatenation
4343
*/
4444

45-
/** @typedef {BuildMeta & KnownCssBuildMeta} CssBuildMeta */
45+
/** @typedef {BuildMeta & KnownCssModuleBuildMeta} CssModuleBuildMeta */
4646

4747
class CssModule extends NormalModule {
4848
/**
@@ -53,9 +53,9 @@ class CssModule extends NormalModule {
5353
super(options);
5454

5555
// Redeclared with the css specific shape
56-
/** @type {CssBuildInfo | undefined} */
56+
/** @type {CssModuleBuildInfo | undefined} */
5757
this.buildInfo = undefined;
58-
/** @type {CssBuildMeta | undefined} */
58+
/** @type {CssModuleBuildMeta | undefined} */
5959
this.buildMeta = undefined;
6060

6161
// Avoid override `layer` for `Module` class, because it is a feature to run module in specific layer

0 commit comments

Comments
 (0)