Skip to content

Commit aeb1912

Browse files
authored
Merge pull request webpack#17236 from webpack/types-more
refactor: more types
2 parents f27b660 + f003f1c commit aeb1912

File tree

91 files changed

+1427
-306
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1427
-306
lines changed

lib/DllEntryPlugin.js

+5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ const DllEntryDependency = require("./dependencies/DllEntryDependency");
1010
const EntryDependency = require("./dependencies/EntryDependency");
1111

1212
class DllEntryPlugin {
13+
/**
14+
* @param {string} context context
15+
* @param {string[]} entries entry names
16+
* @param {TODO} options options
17+
*/
1318
constructor(context, entries, options) {
1419
this.context = context;
1520
this.entries = entries;

lib/PrefetchPlugin.js

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ const PrefetchDependency = require("./dependencies/PrefetchDependency");
1010
/** @typedef {import("./Compiler")} Compiler */
1111

1212
class PrefetchPlugin {
13+
/**
14+
* @param {string} context context or request if context is not set
15+
* @param {string} [request] request
16+
*/
1317
constructor(context, request) {
1418
if (request) {
1519
this.context = context;

lib/SelfModuleFactory.js

+12
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,23 @@
55

66
"use strict";
77

8+
/** @typedef {import("./ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
9+
/** @typedef {import("./ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */
10+
/** @typedef {import("./ModuleGraph")} ModuleGraph */
11+
812
class SelfModuleFactory {
13+
/**
14+
* @param {ModuleGraph} moduleGraph module graph
15+
*/
916
constructor(moduleGraph) {
1017
this.moduleGraph = moduleGraph;
1118
}
1219

20+
/**
21+
* @param {ModuleFactoryCreateData} data data object
22+
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
23+
* @returns {void}
24+
*/
1325
create(data, callback) {
1426
const module = this.moduleGraph.getParentModule(data.dependencies[0]);
1527
callback(null, {

lib/css/CssParser.js

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ const walkCssTokens = require("./walkCssTokens");
1919

2020
/** @typedef {import("../Parser").ParserState} ParserState */
2121
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
22+
/** @typedef {[number, number]} Range */
23+
2224
const CC_LEFT_CURLY = "{".charCodeAt(0);
2325
const CC_RIGHT_CURLY = "}".charCodeAt(0);
2426
const CC_COLON = ":".charCodeAt(0);

lib/debug/ProfilingPlugin.js

+11
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const createSchemaValidation = require("../util/create-schema-validation");
1717
const { dirname, mkdirpSync } = require("../util/fs");
1818

1919
/** @typedef {import("../../declarations/plugins/debug/ProfilingPlugin").ProfilingPluginOptions} ProfilingPluginOptions */
20+
/** @typedef {import("../Compiler")} Compiler */
2021
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
2122

2223
const validate = createSchemaValidation(
@@ -72,6 +73,11 @@ class Profiler {
7273
]);
7374
}
7475

76+
/**
77+
* @param {string} method method name
78+
* @param {object} [params] params
79+
* @returns {Promise<TODO>} Promise for the result
80+
*/
7581
sendCommand(method, params) {
7682
if (this.hasSession()) {
7783
return new Promise((res, rej) => {
@@ -203,6 +209,11 @@ class ProfilingPlugin {
203209
this.outputPath = options.outputPath || "events.json";
204210
}
205211

212+
/**
213+
* Apply the plugin
214+
* @param {Compiler} compiler the compiler instance
215+
* @returns {void}
216+
*/
206217
apply(compiler) {
207218
const tracer = createTrace(
208219
compiler.intermediateFileSystem,

lib/dependencies/AMDDefineDependency.js

+8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const NullDependency = require("./NullDependency");
1212
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
1313
/** @typedef {import("../Dependency")} Dependency */
1414
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
15+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1516
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
1617
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
1718

@@ -107,6 +108,13 @@ const DEFINITIONS = {
107108
};
108109

109110
class AMDDefineDependency extends NullDependency {
111+
/**
112+
* @param {Range} range range
113+
* @param {Range} arrayRange array range
114+
* @param {Range} functionRange function range
115+
* @param {Range} objectRange object range
116+
* @param {boolean} namedModule true, when define is called with a name
117+
*/
110118
constructor(range, arrayRange, functionRange, objectRange, namedModule) {
111119
super();
112120
this.range = range;

lib/dependencies/AMDDefineDependencyParserPlugin.js

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ const DynamicExports = require("./DynamicExports");
1616
const LocalModuleDependency = require("./LocalModuleDependency");
1717
const { addLocalModule, getLocalModule } = require("./LocalModulesHelpers");
1818

19+
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
20+
1921
const isBoundFunctionExpression = expr => {
2022
if (expr.type !== "CallExpression") return false;
2123
if (expr.callee.type !== "MemberExpression") return false;
@@ -43,6 +45,10 @@ class AMDDefineDependencyParserPlugin {
4345
this.options = options;
4446
}
4547

48+
/**
49+
* @param {JavascriptParser} parser the parser
50+
* @returns {void}
51+
*/
4652
apply(parser) {
4753
parser.hooks.call
4854
.for("define")

lib/dependencies/AMDPlugin.js

+7
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ const ConstDependency = require("./ConstDependency");
3232
const LocalModuleDependency = require("./LocalModuleDependency");
3333
const UnsupportedDependency = require("./UnsupportedDependency");
3434

35+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
3536
/** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptions */
3637
/** @typedef {import("../Compiler")} Compiler */
38+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
3739

3840
const PLUGIN_NAME = "AMDPlugin";
3941

@@ -125,6 +127,11 @@ class AMDPlugin {
125127
);
126128
});
127129

130+
/**
131+
* @param {Parser} parser parser parser
132+
* @param {JavascriptParserOptions} parserOptions parserOptions
133+
* @returns {void}
134+
*/
128135
const handler = (parser, parserOptions) => {
129136
if (parserOptions.amd !== undefined && !parserOptions.amd) return;
130137

lib/dependencies/AMDRequireArrayDependency.js

+5
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@ const NullDependency = require("./NullDependency");
1212
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
1313
/** @typedef {import("../Dependency")} Dependency */
1414
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
15+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1516
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
1617
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
1718

1819
class AMDRequireArrayDependency extends NullDependency {
20+
/**
21+
* @param {TODO} depsArray deps array
22+
* @param {Range} range range
23+
*/
1924
constructor(depsArray, range) {
2025
super();
2126

lib/dependencies/AMDRequireContextDependency.js

+6
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,16 @@
88
const makeSerializable = require("../util/makeSerializable");
99
const ContextDependency = require("./ContextDependency");
1010

11+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1112
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
1213
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
1314

1415
class AMDRequireContextDependency extends ContextDependency {
16+
/**
17+
* @param {TODO} options options
18+
* @param {Range} range range
19+
* @param {Range} valueRange value range
20+
*/
1521
constructor(options, range, valueRange) {
1622
super(options);
1723

lib/dependencies/AMDRequireDependenciesBlock.js

+6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@
88
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
99
const makeSerializable = require("../util/makeSerializable");
1010

11+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
12+
1113
class AMDRequireDependenciesBlock extends AsyncDependenciesBlock {
14+
/**
15+
* @param {DependencyLocation} loc location info
16+
* @param {string=} request request
17+
*/
1218
constructor(loc, request) {
1319
super(null, loc, request);
1420
}

lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ const { getLocalModule } = require("./LocalModulesHelpers");
1919
const UnsupportedDependency = require("./UnsupportedDependency");
2020
const getFunctionExpression = require("./getFunctionExpression");
2121

22+
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
23+
2224
class AMDRequireDependenciesBlockParserPlugin {
2325
constructor(options) {
2426
this.options = options;
@@ -50,6 +52,10 @@ class AMDRequireDependenciesBlockParserPlugin {
5052
return bindThis;
5153
}
5254

55+
/**
56+
* @param {JavascriptParser} parser the parser
57+
* @returns {void}
58+
*/
5359
apply(parser) {
5460
parser.hooks.call
5561
.for("require")

lib/dependencies/AMDRequireDependency.js

+7
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,17 @@ const NullDependency = require("./NullDependency");
1313
/** @typedef {import("../AsyncDependenciesBlock")} AsyncDependenciesBlock */
1414
/** @typedef {import("../Dependency")} Dependency */
1515
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
16+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1617
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
1718
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
1819

1920
class AMDRequireDependency extends NullDependency {
21+
/**
22+
* @param {Range} outerRange outer range
23+
* @param {Range} arrayRange array range
24+
* @param {Range} functionRange function range
25+
* @param {Range} errorCallbackRange error callback range
26+
*/
2027
constructor(outerRange, arrayRange, functionRange, errorCallbackRange) {
2128
super();
2229

lib/dependencies/AMDRequireItemDependency.js

+6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
99
const ModuleDependency = require("./ModuleDependency");
1010
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
1111

12+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
13+
1214
class AMDRequireItemDependency extends ModuleDependency {
15+
/**
16+
* @param {string} request the request string
17+
* @param {Range} range location in source code
18+
*/
1319
constructor(request, range) {
1420
super(request);
1521

lib/dependencies/CachedConstDependency.js

+6
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,17 @@ const NullDependency = require("./NullDependency");
1818
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
1919
/** @typedef {import("../ModuleGraph")} ModuleGraph */
2020
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
21+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
2122
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
2223
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
2324
/** @typedef {import("../util/Hash")} Hash */
2425

2526
class CachedConstDependency extends NullDependency {
27+
/**
28+
* @param {string} expression expression
29+
* @param {Range} range range
30+
* @param {string} identifier identifier
31+
*/
2632
constructor(expression, range, identifier) {
2733
super();
2834

lib/dependencies/CommonJsExportRequireDependency.js

+11
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,26 @@ const processExportInfo = require("./processExportInfo");
2222
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
2323
/** @typedef {import("../Module")} Module */
2424
/** @typedef {import("../ModuleGraph")} ModuleGraph */
25+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
2526
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
2627
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
2728
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
29+
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */
2830

2931
const idsSymbol = Symbol("CommonJsExportRequireDependency.ids");
3032

3133
const EMPTY_OBJECT = {};
3234

3335
class CommonJsExportRequireDependency extends ModuleDependency {
36+
/**
37+
* @param {Range} range range
38+
* @param {Range} valueRange value range
39+
* @param {CommonJSDependencyBaseKeywords} base base
40+
* @param {string[]} names names
41+
* @param {string} request request
42+
* @param {string[]} ids ids
43+
* @param {boolean} resultUsed true, when the result is used
44+
*/
3445
constructor(range, valueRange, base, names, request, ids, resultUsed) {
3546
super(request);
3647
this.range = range;

lib/dependencies/CommonJsExportsDependency.js

+8
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,20 @@ const NullDependency = require("./NullDependency");
1616
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
1717
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
1818
/** @typedef {import("../ModuleGraph")} ModuleGraph */
19+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1920
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
2021
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
22+
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */
2123

2224
const EMPTY_OBJECT = {};
2325

2426
class CommonJsExportsDependency extends NullDependency {
27+
/**
28+
* @param {Range} range range
29+
* @param {Range} valueRange value range
30+
* @param {CommonJSDependencyBaseKeywords} base base
31+
* @param {string[]} names names
32+
*/
2533
constructor(range, valueRange, base, names) {
2634
super();
2735
this.range = range;

lib/dependencies/CommonJsExportsParserPlugin.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ const ModuleDecoratorDependency = require("./ModuleDecoratorDependency");
1818

1919
/** @typedef {import("estree").AssignmentExpression} AssignmentExpression */
2020
/** @typedef {import("estree").CallExpression} CallExpression */
21-
/** @typedef {import("estree").Expression} ExpressionNode */
2221
/** @typedef {import("estree").Expression} Expression */
2322
/** @typedef {import("estree").Super} Super */
2423

@@ -95,7 +94,7 @@ const isFalsyLiteral = expr => {
9594

9695
/**
9796
* @param {JavascriptParser} parser the parser
98-
* @param {ExpressionNode} expr expression
97+
* @param {Expression} expr expression
9998
* @returns {{ argument: BasicEvaluatedExpression, ids: string[] } | undefined} parsed call
10099
*/
101100
const parseRequireCall = (parser, expr) => {
@@ -134,6 +133,7 @@ class CommonJsExportsParserPlugin {
134133

135134
/**
136135
* @param {JavascriptParser} parser the parser
136+
* @returns {void}
137137
*/
138138
apply(parser) {
139139
const enableStructuredExports = () => {

lib/dependencies/CommonJsFullRequireDependency.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ const ModuleDependency = require("./ModuleDependency");
1616
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
1717
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
1818
/** @typedef {import("../ModuleGraph")} ModuleGraph */
19+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
1920
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
2021
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
2122
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
2223

2324
class CommonJsFullRequireDependency extends ModuleDependency {
2425
/**
2526
* @param {string} request the request string
26-
* @param {[number, number]} range location in source code
27+
* @param {Range} range location in source code
2728
* @param {string[]} names accessed properties on module
2829
*/
2930
constructor(request, range, names) {

lib/dependencies/CommonJsPlugin.js

+14
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,18 @@ const {
3434
} = require("../javascript/JavascriptParserHelpers");
3535
const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
3636

37+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
38+
/** @typedef {import("../Compiler")} Compiler */
39+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
40+
3741
const PLUGIN_NAME = "CommonJsPlugin";
3842

3943
class CommonJsPlugin {
44+
/**
45+
* Apply the plugin
46+
* @param {Compiler} compiler the compiler instance
47+
* @returns {void}
48+
*/
4049
apply(compiler) {
4150
compiler.hooks.compilation.tap(
4251
PLUGIN_NAME,
@@ -162,6 +171,11 @@ class CommonJsPlugin {
162171
);
163172
});
164173

174+
/**
175+
* @param {Parser} parser parser parser
176+
* @param {JavascriptParserOptions} parserOptions parserOptions
177+
* @returns {void}
178+
*/
165179
const handler = (parser, parserOptions) => {
166180
if (parserOptions.commonjs !== undefined && !parserOptions.commonjs)
167181
return;

0 commit comments

Comments
 (0)