refactor(types): more

This commit is contained in:
alexander.akait 2023-05-21 23:31:30 +03:00
parent 71d60fafb4
commit 055737dc0c
65 changed files with 307 additions and 29 deletions

View File

@ -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);

View File

@ -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 */
@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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);
}

View File

@ -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();

View File

@ -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);

View File

@ -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();

View File

@ -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;

View File

@ -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;

View File

@ -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 */
@ -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) => {

View File

@ -16,6 +16,7 @@ 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 */
@ -23,7 +24,7 @@ const ModuleDependency = require("./ModuleDependency");
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) {

View File

@ -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,

View File

@ -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;

View File

@ -15,6 +15,7 @@ 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 */
@ -22,7 +23,7 @@ const NullDependency = require("./NullDependency");
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) {

View File

@ -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

View File

@ -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();

View File

@ -9,6 +9,9 @@ const WebpackError = require("../WebpackError");
const makeSerializable = require("../util/makeSerializable");
class CriticalDependencyWarning extends WebpackError {
/**
* @param {string} message message
*/
constructor(message) {
super();

View File

@ -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 */
@ -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

View File

@ -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 = "") {

View File

@ -14,6 +14,7 @@ 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 */
@ -21,7 +22,7 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
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)
*/

View File

@ -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 */
@ -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) {

View File

@ -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);
}

View File

@ -16,6 +16,7 @@ const NullDependency = require("./NullDependency");
/** @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/Hash")} Hash */
@ -84,6 +85,11 @@ const getProperty = (moduleGraph, module, exportName, property, runtime) => {
};
class ExportsInfoDependency extends NullDependency {
/**
* @param {Range} range
* @param {string | null} exportName
* @param {string | null} property
*/
constructor(range, exportName, property) {
super();
this.range = range;

View File

@ -13,13 +13,14 @@ 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 */
/** @typedef {import("./HarmonyAcceptImportDependency")} HarmonyAcceptImportDependency */
class HarmonyAcceptDependency extends NullDependency {
/**
* @param {[number, number]} range expression range
* @param {Range} range expression range
* @param {HarmonyAcceptImportDependency[]} dependencies import dependencies
* @param {boolean} hasCallback true, if the range wraps an existing callback
*/

View File

@ -14,6 +14,9 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
/**
* @param {string} request the request string
*/
constructor(request) {
super(request, NaN);
this.weak = true;

View File

@ -12,6 +12,8 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend
/** @typedef {import("../ChunkGraph")} ChunkGraph */
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
@ -23,6 +25,15 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend
* a.x !== undefined; // if x value statically analyzable
*/
class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDependency {
/**
* @param {string} request the request string
* @param {number} sourceOrder source order
* @param {TODO} ids ids
* @param {TODO} name name
* @param {Range} range location in source code
* @param {Assertions} assertions assertions
* @param {string} operator operator
*/
constructor(request, sourceOrder, ids, name, range, assertions, operator) {
super(request, sourceOrder, ids, name, range, false, assertions);
this.operator = operator;

View File

@ -18,10 +18,17 @@ 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 */
class HarmonyExportExpressionDependency extends NullDependency {
/**
* @param {Range} range range
* @param {Range} rangeStatement range statement
* @param {string} prefix prefix
* @param {TODO} declarationId declaration id
*/
constructor(range, rangeStatement, prefix, declarationId) {
super();
this.range = range;

View File

@ -36,6 +36,7 @@ const processExportInfo = require("./processExportInfo");
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
/** @typedef {import("../WebpackError")} WebpackError */
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */
@ -332,7 +333,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
* @param {ReadonlyArray<HarmonyExportImportedSpecifierDependency> | Iterable<HarmonyExportImportedSpecifierDependency>} otherStarExports other star exports in the module before this import
* @param {number} exportPresenceMode mode of checking export names
* @param {HarmonyStarExportsList} allStarExports all star exports in the module
* @param {Record<string, any>=} assertions import assertions
* @param {Assertions=} assertions import assertions
*/
constructor(
request,

View File

@ -19,6 +19,10 @@ const NullDependency = require("./NullDependency");
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
class HarmonyExportSpecifierDependency extends NullDependency {
/**
* @param {TODO} id id
* @param {TODO} name name
*/
constructor(id, name) {
super();
this.id = id;

View File

@ -24,6 +24,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
/** @typedef {import("../WebpackError")} WebpackError */
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */
@ -55,7 +56,7 @@ class HarmonyImportDependency extends ModuleDependency {
*
* @param {string} request request string
* @param {number} sourceOrder source order
* @param {Record<string, any>=} assertions import assertions
* @param {Assertions=} assertions import assertions
*/
constructor(request, sourceOrder, assertions) {
super(request);

View File

@ -16,10 +16,16 @@ const HarmonyImportDependency = require("./HarmonyImportDependency");
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
/** @typedef {import("../util/Hash")} Hash */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
class HarmonyImportSideEffectDependency extends HarmonyImportDependency {
/**
* @param {TODO} request the request string
* @param {number} sourceOrder source order
* @param {Assertions=} assertions assertions
*/
constructor(request, sourceOrder, assertions) {
super(request, sourceOrder, assertions);
}

View File

@ -23,6 +23,8 @@ const HarmonyImportDependency = require("./HarmonyImportDependency");
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
/** @typedef {import("../WebpackError")} WebpackError */
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../util/Hash")} Hash */
@ -33,6 +35,15 @@ const idsSymbol = Symbol("HarmonyImportSpecifierDependency.ids");
const { ExportPresenceModes } = HarmonyImportDependency;
class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
/**
* @param {TODO} request request
* @param {number} sourceOrder source order
* @param {string[]} ids ids
* @param {string} name name
* @param {Range} range range
* @param {TODO} exportPresenceMode export presence mode
* @param {Assertions=} assertions assertions
*/
constructor(
request,
sourceOrder,

View File

@ -9,10 +9,16 @@ const makeSerializable = require("../util/makeSerializable");
const ContextDependency = require("./ContextDependency");
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
class ImportContextDependency extends ContextDependency {
/**
* @param {TODO} options options
* @param {Range} range range
* @param {Range} valueRange value range
*/
constructor(options, range, valueRange) {
super(options);

View File

@ -14,6 +14,7 @@ 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 */
@ -21,7 +22,7 @@ const ModuleDependency = require("./ModuleDependency");
class ImportDependency extends ModuleDependency {
/**
* @param {string} request the request
* @param {[number, number]} range expression range
* @param {Range} range expression range
* @param {string[][]=} referencedExports list of referenced exports
*/
constructor(request, range, referencedExports) {

View File

@ -13,11 +13,12 @@ const ImportDependency = require("./ImportDependency");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ImportEagerDependency extends ImportDependency {
/**
* @param {string} request the request
* @param {[number, number]} range expression range
* @param {Range} range expression range
* @param {string[][]=} referencedExports list of referenced exports
*/
constructor(request, range, referencedExports) {

View File

@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ImportMetaHotAcceptDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);
this.range = range;

View File

@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ImportMetaHotDeclineDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);

View File

@ -13,11 +13,12 @@ const ImportDependency = require("./ImportDependency");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ImportWeakDependency extends ImportDependency {
/**
* @param {string} request the request
* @param {[number, number]} range expression range
* @param {Range} range expression range
* @param {string[][]=} referencedExports list of referenced exports
*/
constructor(request, range, referencedExports) {

View File

@ -11,10 +11,17 @@ 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 */
/** @typedef {import("./LocalModule")} LocalModule */
class LocalModuleDependency extends NullDependency {
/**
* @param {LocalModule} localModule local module
* @param {Range} range range
* @param {boolean} callNew true, when the local module should be called with new
*/
constructor(localModule, range, callNew) {
super();

View File

@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ModuleHotAcceptDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);
this.range = range;

View File

@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency");
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class ModuleHotDeclineDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);

View File

@ -8,6 +8,9 @@
const ModuleDependency = require("./ModuleDependency");
class PrefetchDependency extends ModuleDependency {
/**
* @param {string} request the request string
*/
constructor(request) {
super(request);
}

View File

@ -18,6 +18,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @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 */
@ -37,7 +38,7 @@ class ProvidedDependency extends ModuleDependency {
* @param {string} request request
* @param {string} identifier identifier
* @param {string[]} ids ids
* @param {[number, number]} range range
* @param {Range} range range
*/
constructor(request, identifier, ids, range) {
super(request);

View File

@ -17,13 +17,14 @@ 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 PureExpressionDependency extends NullDependency {
/**
* @param {[number, number]} range the source range
* @param {Range} range the source range
*/
constructor(range) {
super();

View File

@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
const ContextDependency = require("./ContextDependency");
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
class RequireContextDependency extends ContextDependency {
/**
* @param {TODO} options options
* @param {Range} range range
*/
constructor(options, range) {
super(options);

View File

@ -9,6 +9,10 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
const makeSerializable = require("../util/makeSerializable");
class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
/**
* @param {TODO} chunkName chunk name
* @param {TODO} loc location info
*/
constructor(chunkName, loc) {
super(chunkName, loc, null);
}

View File

@ -13,10 +13,16 @@ 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 RequireEnsureDependency extends NullDependency {
/**
* @param {Range} range range
* @param {Range} contentRange content range
* @param {Range} errorHandlerRange error handler range
*/
constructor(range, contentRange, errorHandlerRange) {
super();

View File

@ -10,6 +10,9 @@ const ModuleDependency = require("./ModuleDependency");
const NullDependency = require("./NullDependency");
class RequireEnsureItemDependency extends ModuleDependency {
/**
* @param {string} request the request string
*/
constructor(request) {
super(request);
}

View File

@ -19,9 +19,16 @@ const {
toConstantDependency
} = require("../javascript/JavascriptParserHelpers");
/** @typedef {import("../Compiler")} Compiler */
const PLUGIN_NAME = "RequireEnsurePlugin";
class RequireEnsurePlugin {
/**
* Apply the plugin
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply(compiler) {
compiler.hooks.compilation.tap(
PLUGIN_NAME,

View File

@ -12,10 +12,14 @@ 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 RequireHeaderDependency extends NullDependency {
/**
* @param {Range} range range
*/
constructor(range) {
super();
if (!Array.isArray(range)) throw new Error("range must be valid");

View File

@ -14,9 +14,14 @@ 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("../util/runtime").RuntimeSpec} RuntimeSpec */
class RequireIncludeDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);

View File

@ -14,6 +14,9 @@ const makeSerializable = require("../util/makeSerializable");
const RequireIncludeDependency = require("./RequireIncludeDependency");
module.exports = class RequireIncludeDependencyParserPlugin {
/**
* @param {boolean} warn true: warn about deprecation, false: don't warn
*/
constructor(warn) {
this.warn = warn;
}

View File

@ -12,9 +12,16 @@ const {
const RequireIncludeDependency = require("./RequireIncludeDependency");
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
/** @typedef {import("../Compiler")} Compiler */
const PLUGIN_NAME = "RequireIncludePlugin";
class RequireIncludePlugin {
/**
* Apply the plugin
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply(compiler) {
compiler.hooks.compilation.tap(
PLUGIN_NAME,

View File

@ -9,10 +9,18 @@ const makeSerializable = require("../util/makeSerializable");
const ContextDependency = require("./ContextDependency");
const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("./ContextDependency").ContextDependencyOptions} ContextDependencyOptions */
class RequireResolveContextDependency extends ContextDependency {
/**
* @param {ContextDependencyOptions} options options
* @param {Range} range range
* @param {Range} valueRange value range
* @param {TODO} context context
*/
constructor(options, range, valueRange, context) {
super(options, context);

View File

@ -12,9 +12,15 @@ const ModuleDependencyAsId = require("./ModuleDependencyTemplateAsId");
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
class RequireResolveDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
* @param {TODO} context context
*/
constructor(request, range, context) {
super(request);

View File

@ -11,10 +11,14 @@ 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 RequireResolveHeaderDependency extends NullDependency {
/**
* @param {Range} range range
*/
constructor(range) {
super();

View File

@ -22,6 +22,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 */
@ -32,8 +33,8 @@ const getRawDataUrlModule = memoize(() => require("../asset/RawDataUrlModule"));
class URLDependency extends ModuleDependency {
/**
* @param {string} request request
* @param {[number, number]} range range of the arguments of new URL( |> ... <| )
* @param {[number, number]} outerRange range of the full |> new URL(...) <|
* @param {Range} range range of the arguments of new URL( |> ... <| )
* @param {Range} outerRange range of the full |> new URL(...) <|
* @param {boolean=} relative use relative urls instead of absolute with base uri
*/
constructor(request, range, outerRange, relative) {

View File

@ -11,10 +11,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 UnsupportedDependency extends NullDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super();

View File

@ -17,6 +17,12 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
class WebAssemblyExportImportedDependency extends ModuleDependency {
/**
* @param {string} exportName export name
* @param {string} request request
* @param {string} name name
* @param {TODO} valueType value type
*/
constructor(exportName, request, name, valueType) {
super(request);
/** @type {string} */

View File

@ -15,9 +15,14 @@ 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("../util/runtime").RuntimeSpec} RuntimeSpec */
class WebpackIsIncludedDependency extends ModuleDependency {
/**
* @param {string} request the request string
* @param {Range} range location in source code
*/
constructor(request, range) {
super(request);

View File

@ -18,6 +18,7 @@ const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../Entrypoint")} Entrypoint */
/** @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/Hash")} Hash */
@ -26,7 +27,7 @@ const ModuleDependency = require("./ModuleDependency");
class WorkerDependency extends ModuleDependency {
/**
* @param {string} request request
* @param {[number, number]} range range
* @param {Range} range range
* @param {Object} workerDependencyOptions options
* @param {string} workerDependencyOptions.publicPath public path for the worker
*/

View File

@ -5,6 +5,13 @@
"use strict";
/** @typedef {import("estree").Expression} Expression */
/** @typedef {import("estree").SpreadElement} SpreadElement */
/**
* @param {Expression} expr expressions
* @returns {{fn: Expression, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined }}
*/
module.exports = expr => {
// <FunctionExpression>
if (

View File

@ -53,6 +53,7 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
/** @typedef {import("estree").ThisExpression} ThisExpressionNode */
/** @typedef {import("estree").UnaryExpression} UnaryExpressionNode */
/** @typedef {import("estree").VariableDeclarator} VariableDeclaratorNode */
/** @typedef {Record<string, any>} Assertions */
/** @template T @typedef {import("tapable").AsArray<T>} AsArray<T> */
/** @typedef {import("../Parser").ParserState} ParserState */
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
@ -102,6 +103,8 @@ class VariableInfo {
* @property {boolean} inTry
*/
/** @typedef {[number, number]} Range */
/**
* Helper function for joining two ranges into a single range. This is useful
* when working with AST nodes, as it allows you to combine the ranges of child nodes
@ -1380,7 +1383,7 @@ class JavascriptParser extends Parser {
: "" + argExpr.number;
const newString = value + (stringSuffix ? stringSuffix.string : "");
const newRange = /** @type {[number, number]} */ ([
const newRange = /** @type {Range} */ ([
argExpr.range[0],
(stringSuffix || argExpr).range[1]
]);

9
types.d.ts vendored
View File

@ -227,6 +227,9 @@ declare interface ArgumentConfig {
type: "string" | "number" | "boolean" | "path" | "enum" | "RegExp" | "reset";
values?: any[];
}
declare interface Assertions {
[index: string]: any;
}
declare interface Asset {
/**
* the filename of the asset
@ -4618,11 +4621,7 @@ declare interface HandleModuleCreationOptions {
connectOrigin?: boolean;
}
declare class HarmonyImportDependency extends ModuleDependency {
constructor(
request: string,
sourceOrder: number,
assertions?: Record<string, any>
);
constructor(request: string, sourceOrder: number, assertions?: Assertions);
sourceOrder: number;
getImportVar(moduleGraph: ModuleGraph): string;
getImportStatement(