mirror of https://github.com/webpack/webpack.git
refactor(types): more
This commit is contained in:
parent
71d60fafb4
commit
055737dc0c
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) => {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -9,6 +9,9 @@ const WebpackError = require("../WebpackError");
|
|||
const makeSerializable = require("../util/makeSerializable");
|
||||
|
||||
class CriticalDependencyWarning extends WebpackError {
|
||||
/**
|
||||
* @param {string} message message
|
||||
*/
|
||||
constructor(message) {
|
||||
super();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = "") {
|
||||
|
|
|
@ -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)
|
||||
*/
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
const ModuleDependency = require("./ModuleDependency");
|
||||
|
||||
class PrefetchDependency extends ModuleDependency {
|
||||
/**
|
||||
* @param {string} request the request string
|
||||
*/
|
||||
constructor(request) {
|
||||
super(request);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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} */
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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]
|
||||
]);
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue