Skip to content

Commit

Permalink
refactor(types): more
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed May 21, 2023
1 parent 71d60fa commit 055737d
Show file tree
Hide file tree
Showing 65 changed files with 307 additions and 29 deletions.
2 changes: 2 additions & 0 deletions lib/css/CssParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ const walkCssTokens = require("./walkCssTokens");

/** @typedef {import("../Parser").ParserState} ParserState */
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
/** @typedef {[number, number]} Range */

const CC_LEFT_CURLY = "{".charCodeAt(0);
const CC_RIGHT_CURLY = "}".charCodeAt(0);
const CC_COLON = ":".charCodeAt(0);
Expand Down
8 changes: 8 additions & 0 deletions lib/dependencies/AMDDefineDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

Expand Down Expand Up @@ -107,6 +108,13 @@ const DEFINITIONS = {
};

class AMDDefineDependency extends NullDependency {
/**
* @param {Range} range range
* @param {Range} arrayRange array range
* @param {Range} functionRange function range
* @param {Range} objectRange object range
* @param {boolean} namedModule true, when define is called with a name
*/
constructor(range, arrayRange, functionRange, objectRange, namedModule) {
super();
this.range = range;
Expand Down
5 changes: 5 additions & 0 deletions lib/dependencies/AMDRequireArrayDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,15 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

class AMDRequireArrayDependency extends NullDependency {
/**
* @param {TODO} depsArray deps array
* @param {Range} range range
*/
constructor(depsArray, range) {
super();

Expand Down
6 changes: 6 additions & 0 deletions lib/dependencies/AMDRequireContextDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@
const makeSerializable = require("../util/makeSerializable");
const ContextDependency = require("./ContextDependency");

/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

class AMDRequireContextDependency extends ContextDependency {
/**
* @param {TODO} options options
* @param {Range} range range
* @param {Range} valueRange value range
*/
constructor(options, range, valueRange) {
super(options);

Expand Down
6 changes: 6 additions & 0 deletions lib/dependencies/AMDRequireDependenciesBlock.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@
const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
const makeSerializable = require("../util/makeSerializable");

/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */

class AMDRequireDependenciesBlock extends AsyncDependenciesBlock {
/**
* @param {DependencyLocation} loc location info
* @param {string=} request request
*/
constructor(loc, request) {
super(null, loc, request);
}
Expand Down
7 changes: 7 additions & 0 deletions lib/dependencies/AMDRequireDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,17 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../AsyncDependenciesBlock")} AsyncDependenciesBlock */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

class AMDRequireDependency extends NullDependency {
/**
* @param {Range} outerRange outer range
* @param {Range} arrayRange array range
* @param {Range} functionRange function range
* @param {Range} errorCallbackRange error callback range
*/
constructor(outerRange, arrayRange, functionRange, errorCallbackRange) {
super();

Expand Down
6 changes: 6 additions & 0 deletions lib/dependencies/AMDRequireItemDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");

/** @typedef {import("../javascript/JavascriptParser").Range} Range */

class AMDRequireItemDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);

Expand Down
6 changes: 6 additions & 0 deletions lib/dependencies/CachedConstDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,17 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */

class CachedConstDependency extends NullDependency {
/**
* @param {TODO} expression expression
* @param {Range} range range
* @param {string} identifier identifier
*/
constructor(expression, range, identifier) {
super();

Expand Down
11 changes: 11 additions & 0 deletions lib/dependencies/CommonJsExportRequireDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,26 @@ const processExportInfo = require("./processExportInfo");
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */

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

const EMPTY_OBJECT = {};

class CommonJsExportRequireDependency extends ModuleDependency {
/**
* @param {Range} range range
* @param {Range} valueRange value range
* @param {CommonJSDependencyBaseKeywords} base base
* @param {string[]} names names
* @param {string} request request
* @param {string[]} ids ids
* @param {boolean} resultUsed true, when the result is used
*/
constructor(range, valueRange, base, names, request, ids, resultUsed) {
super(request);
this.range = range;
Expand Down
8 changes: 8 additions & 0 deletions lib/dependencies/CommonJsExportsDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,20 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */

const EMPTY_OBJECT = {};

class CommonJsExportsDependency extends NullDependency {
/**
* @param {Range} range range
* @param {Range} valueRange value range
* @param {CommonJSDependencyBaseKeywords} base base
* @param {string[]} names names
*/
constructor(range, valueRange, base, names) {
super();
this.range = range;
Expand Down
3 changes: 1 addition & 2 deletions lib/dependencies/CommonJsExportsParserPlugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ const ModuleDecoratorDependency = require("./ModuleDecoratorDependency");

/** @typedef {import("estree").AssignmentExpression} AssignmentExpression */
/** @typedef {import("estree").CallExpression} CallExpression */
/** @typedef {import("estree").Expression} ExpressionNode */
/** @typedef {import("estree").Expression} Expression */
/** @typedef {import("estree").Super} Super */

Expand Down Expand Up @@ -95,7 +94,7 @@ const isFalsyLiteral = expr => {

/**
* @param {JavascriptParser} parser the parser
* @param {ExpressionNode} expr expression
* @param {Expression} expr expression
* @returns {{ argument: BasicEvaluatedExpression, ids: string[] } | undefined} parsed call
*/
const parseRequireCall = (parser, expr) => {
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CommonJsFullRequireDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */

class CommonJsFullRequireDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {[number, number]} range location in source code
* @param {Range} range location in source code
* @param {string[]} names accessed properties on module
*/
constructor(request, range, names) {
Expand Down
7 changes: 7 additions & 0 deletions lib/dependencies/CommonJsPlugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,16 @@ const {
} = require("../javascript/JavascriptParserHelpers");
const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");

/** @typedef {import("../Compiler")} Compiler */

const PLUGIN_NAME = "CommonJsPlugin";

class CommonJsPlugin {
/**
* Apply the plugin
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply(compiler) {
compiler.hooks.compilation.tap(
PLUGIN_NAME,
Expand Down
8 changes: 8 additions & 0 deletions lib/dependencies/CommonJsSelfReferenceDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,19 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */

class CommonJsSelfReferenceDependency extends NullDependency {
/**
* @param {Range} range range
* @param {CommonJSDependencyBaseKeywords} base base
* @param {string[]} names names
* @param {boolean} call is a call
*/
constructor(range, base, names, call) {
super();
this.range = range;
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/ConstDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */

class ConstDependency extends NullDependency {
/**
* @param {string} expression the expression
* @param {number|[number, number]} range the source range
* @param {number|Range} range the source range
* @param {string[]=} runtimeRequirements runtime requirements
*/
constructor(expression, range, runtimeRequirements) {
Expand Down
6 changes: 3 additions & 3 deletions lib/dependencies/ContextDependencyHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ const splitContextFromPrefix = prefix => {
};

/** @typedef {Partial<Omit<ContextDependencyOptions, "resource">>} PartialContextDependencyOptions */

/** @typedef {{ new(options: ContextDependencyOptions, range: [number, number], valueRange: [number, number], ...args: any[]): ContextDependency }} ContextDependencyConstructor */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {{ new(options: ContextDependencyOptions, range: Range, valueRange: [number, number], ...args: any[]): ContextDependency }} ContextDependencyConstructor */

/**
* @param {ContextDependencyConstructor} Dep the Dependency class
* @param {[number, number]} range source range
* @param {Range} range source range
* @param {BasicEvaluatedExpression} param context param
* @param {EsTreeNode} expr expr
* @param {Pick<JavascriptParserOptions, `${"expr"|"wrapped"}Context${"Critical"|"Recursive"|"RegExp"}` | "exprContextRequest">} options options for context creation
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CreateScriptUrlDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

class CreateScriptUrlDependency extends NullDependency {
/**
* @param {[number, number]} range range
* @param {Range} range range
*/
constructor(range) {
super();
Expand Down
3 changes: 3 additions & 0 deletions lib/dependencies/CriticalDependencyWarning.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ const WebpackError = require("../WebpackError");
const makeSerializable = require("../util/makeSerializable");

class CriticalDependencyWarning extends WebpackError {
/**
* @param {string} message message
*/
constructor(message) {
super();

Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CssImportDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../css/CssParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */
Expand All @@ -29,7 +30,7 @@ class CssImportDependency extends ModuleDependency {
* \@import url("landscape.css") layer(forms) screen and (orientation: landscape) screen and (orientation: landscape);
*
* @param {string} request request
* @param {[number, number]} range range of the argument
* @param {Range} range range of the argument
* @param {string | undefined} layer layer
* @param {string | undefined} supports list of supports conditions
* @param {string | undefined} media list of media conditions
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CssLocalIdentifierDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../css/CssParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */

class CssLocalIdentifierDependency extends NullDependency {
/**
* @param {string} name name
* @param {[number, number]} range range
* @param {Range} range range
* @param {string=} prefix prefix
*/
constructor(name, range, prefix = "") {
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CssSelfLocalIdentifierDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../css/CssParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */

class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency {
/**
* @param {string} name name
* @param {[number, number]} range range
* @param {Range} range range
* @param {string=} prefix prefix
* @param {Set<string>=} declaredSet set of declared names (will only be active when in declared set)
*/
Expand Down
3 changes: 2 additions & 1 deletion lib/dependencies/CssUrlDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */
Expand All @@ -28,7 +29,7 @@ const getRawDataUrlModule = memoize(() => require("../asset/RawDataUrlModule"));
class CssUrlDependency extends ModuleDependency {
/**
* @param {string} request request
* @param {[number, number]} range range of the argument
* @param {Range} range range of the argument
* @param {"string" | "url"} urlType dependency type e.g. url() or string
*/
constructor(request, range, urlType) {
Expand Down
3 changes: 3 additions & 0 deletions lib/dependencies/DelegatedSourceDependency.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");

class DelegatedSourceDependency extends ModuleDependency {
/**
* @param {string} request the request string
*/
constructor(request) {
super(request);
}
Expand Down
Loading

0 comments on commit 055737d

Please sign in to comment.