webpack 5.112.0 → 5.112.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/webpack.js +13 -7
- package/lib/Compilation.js +152 -60
- package/lib/Compiler.js +12 -25
- package/lib/asset/AssetBytesGenerator.js +14 -6
- package/lib/asset/AssetBytesParser.js +10 -8
- package/lib/asset/AssetGenerator.js +36 -48
- package/lib/asset/AssetModule.js +11 -0
- package/lib/asset/AssetModulesPlugin.js +5 -4
- package/lib/asset/AssetParser.js +8 -8
- package/lib/asset/AssetSourceGenerator.js +16 -8
- package/lib/asset/AssetSourceParser.js +10 -8
- package/lib/asset/WebManifestGenerator.js +11 -6
- package/lib/asset/WebManifestParser.js +3 -3
- package/lib/async-modules/AsyncModuleHelpers.js +8 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +7 -2
- package/lib/cache/CacheFacade.js +1 -1
- package/lib/cache/PackFileCacheStrategy.js +6 -10
- package/lib/cache/ResolverCachePlugin.js +58 -8
- package/lib/config/WebpackOptionsApply.js +8 -28
- package/lib/config/cli.js +9 -6
- package/lib/config/defaults.js +24 -13
- package/lib/config/getClaimedAssetTypes.js +2 -2
- package/lib/config/target.js +1 -1
- package/lib/context/ContextModule.js +1 -1
- package/lib/context/ContextModuleFactory.js +1 -1
- package/lib/context/ContextReplacementPlugin.js +3 -9
- package/lib/css/CssGenerator.js +40 -37
- package/lib/css/CssModule.js +10 -0
- package/lib/css/CssModulesPlugin.js +2 -2
- package/lib/css/CssParser.js +33 -32
- package/lib/css/conventions.js +1 -1
- package/lib/css/data.js +224 -219
- package/lib/css/syntax-parser.js +1159 -298
- package/lib/css/syntax-printer.js +90 -35
- package/lib/debug/ProfilingPlugin.js +65 -43
- package/lib/define/DefinePlugin.js +10 -15
- package/lib/define/DotenvPlugin.js +10 -6
- package/lib/define/EnvironmentPlugin.js +4 -2
- package/lib/dependencies/amd/AMDDefineDependencyParserPlugin.js +1 -2
- package/lib/dependencies/amd/AMDRequireDependenciesBlockParserPlugin.js +4 -1
- package/lib/dependencies/commonjs/CommonJsExportRequireDependency.js +1 -4
- package/lib/dependencies/commonjs/CommonJsExportsParserPlugin.js +18 -33
- package/lib/dependencies/commonjs/CommonJsImportsParserPlugin.js +1 -3
- package/lib/dependencies/commonjs/CommonJsObjectExportDependency.js +4 -4
- package/lib/dependencies/commonjs/CommonJsPlugin.js +2 -5
- package/lib/dependencies/commonjs/RequireEnsureDependenciesBlockParserPlugin.js +4 -1
- package/lib/dependencies/context/ImportMetaContextDependencyParserPlugin.js +1 -2
- package/lib/dependencies/context/ImportMetaGlobDependencyParserPlugin.js +4 -7
- package/lib/dependencies/context/ImportMetaGlobHelpers.js +8 -10
- package/lib/dependencies/core/CachedConstDependency.js +9 -6
- package/lib/dependencies/css/CssIcssExportDependency.js +6 -7
- package/lib/dependencies/css/CssIcssImportDependency.js +1 -3
- package/lib/dependencies/css/CssUrlDependency.js +2 -6
- package/lib/dependencies/esm/ESMDetectionParserPlugin.js +2 -4
- package/lib/dependencies/esm/ESMExportExpressionDependency.js +2 -2
- package/lib/dependencies/esm/ESMExportImportedSpecifierDependency.js +16 -18
- package/lib/dependencies/esm/ESMExportSpecifierDependency.js +20 -3
- package/lib/dependencies/esm/ESMExports.js +2 -10
- package/lib/dependencies/esm/ESMImportDependency.js +17 -2
- package/lib/dependencies/esm/ESMImportDependencyParserPlugin.js +6 -17
- package/lib/dependencies/esm/ESMImportGuard.js +11 -23
- package/lib/dependencies/esm/ESMImportSideEffectDependency.js +1 -1
- package/lib/dependencies/esm/ESMImportSpecifierDependency.js +4 -1
- package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
- package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
- package/lib/dependencies/esm/ESMModulesPlugin.js +1 -3
- package/lib/dependencies/esm/TopLevelAwaitDependency.js +1 -8
- package/lib/dependencies/helpers/DynamicExports.js +4 -6
- package/lib/dependencies/html/HtmlEntryDependency.js +5 -14
- package/lib/dependencies/html/HtmlInlineHtmlDependency.js +1 -4
- package/lib/dependencies/html/HtmlInlineScriptDependency.js +2 -6
- package/lib/dependencies/html/HtmlInlineStyleDependency.js +1 -4
- package/lib/dependencies/import/ImportParserPlugin.js +3 -6
- package/lib/dependencies/import-meta/ImportMetaPlugin.js +4 -6
- package/lib/dependencies/url/URLParserPlugin.js +1 -1
- package/lib/dependencies/worker/WorkerAndWorkletPlugin.js +51 -20
- package/lib/devtool/ModuleFilenameHelpers.js +1 -1
- package/lib/devtool/SourceMapDevToolPlugin.js +1 -1
- package/lib/dll/DelegatedModule.js +3 -3
- package/lib/dll/DllModule.js +3 -1
- package/lib/dll/DllReferencePlugin.js +1 -4
- package/lib/errors/AbstractMethodError.js +1 -1
- package/lib/errors/ErrorHelpers.js +2 -1
- package/lib/errors/HookWebpackError.js +2 -1
- package/lib/errors/JSONParseError.js +4 -4
- package/lib/errors/WebpackError.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +36 -1
- package/lib/externals/ExternalModule.js +12 -9
- package/lib/externals/ExternalModuleFactoryPlugin.js +1 -2
- package/lib/externals/ExternalsPlugin.js +1 -1
- package/lib/fs/FileSystemInfo.js +4 -4
- package/lib/graph/AsyncDependenciesBlock.js +1 -1
- package/lib/graph/ChunkGraph.js +5 -0
- package/lib/graph/Dependency.js +8 -2
- package/lib/graph/ExportsInfo.js +1 -1
- package/lib/graph/ModuleGraph.js +14 -3
- package/lib/graph/buildChunkGraph.js +17 -19
- package/lib/graph/findGraphRoots.js +1 -1
- package/lib/hmr/HotModuleReplacement.runtime.js +10 -9
- package/lib/hmr/HotModuleReplacementPlugin.js +5 -11
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +16 -19
- package/lib/hmr/LazyCompilationPlugin.js +1 -7
- package/lib/html/HtmlGenerator.js +25 -17
- package/lib/html/HtmlModule.js +11 -1
- package/lib/html/HtmlModulesPlugin.js +12 -11
- package/lib/html/HtmlParser.js +10 -9
- package/lib/html/builtinEmbeddedRenderer.js +31 -33
- package/lib/html/data.js +42 -21
- package/lib/html/htmlMinify.js +4 -1
- package/lib/html/syntax-parser.js +34 -35
- package/lib/html/syntax-printer.js +2 -3
- package/lib/html/xmlMinify.js +4 -1
- package/lib/ids/HashedModuleIdsPlugin.js +1 -1
- package/lib/index.js +13 -12
- package/lib/javascript/APIPlugin.js +7 -13
- package/lib/javascript/BasicEvaluatedExpression.js +5 -5
- package/lib/javascript/CommonJsChunkFormatPlugin.js +2 -7
- package/lib/javascript/ConstPlugin.js +1 -1
- package/lib/javascript/JavascriptGenerator.js +16 -11
- package/lib/javascript/JavascriptMetaInfoPlugin.js +3 -15
- package/lib/javascript/JavascriptModule.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +2 -4
- package/lib/javascript/JavascriptParser.js +99 -11
- package/lib/javascript/ScopeAnalyzer.js +183 -107
- package/lib/javascript/UseStrictPlugin.js +2 -5
- package/lib/javascript/jsMinify.js +1 -1
- package/lib/javascript/regexp.js +2 -2
- package/lib/javascript/syntax-parser.js +2114 -1506
- package/lib/javascript/syntax-printer-data.js +167 -1
- package/lib/javascript/syntax-printer.js +9554 -2782
- package/lib/json/JsonGenerator.js +15 -7
- package/lib/json/JsonModule.js +11 -0
- package/lib/json/JsonParser.js +7 -6
- package/lib/library/AssignLibraryPlugin.js +1 -1
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/ModuleLibraryPlugin.js +399 -23
- package/lib/loaders/LoaderRunner.js +76 -38
- package/lib/loaders/loadLoader.js +16 -10
- package/lib/module/Generator.js +17 -9
- package/lib/module/Module.js +2 -2
- package/lib/module/NormalModule.js +7 -5
- package/lib/module/NormalModuleFactory.js +11 -17
- package/lib/module/Parser.js +9 -2
- package/lib/module/extractSourceMap.js +69 -18
- package/lib/module/findCaseMismatch.js +2 -2
- package/lib/node/ExternalModuleInitFragment.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -12
- package/lib/node/ReadFileCompileWasmPlugin.js +2 -6
- package/lib/node/nodeConsole.js +4 -3
- package/lib/optimize/CircularModulesPlugin.js +1 -1
- package/lib/optimize/ConcatenatedModule.js +2 -6
- package/lib/optimize/FlagDependencyExportsPlugin.js +6 -11
- package/lib/optimize/FlagDependencyUsagePlugin.js +28 -3
- package/lib/optimize/InlineExports.js +4 -7
- package/lib/optimize/LazyBarrels.js +41 -5
- package/lib/optimize/ModuleConcatenationPlugin.js +8 -10
- package/lib/optimize/RealContentHashPlugin.js +2 -6
- package/lib/optimize/SideEffectsFlagPlugin.js +7 -21
- package/lib/optimize/SplitChunksPlugin.js +11 -24
- package/lib/optimize/TupleQueue.js +1 -1
- package/lib/output/CleanPlugin.js +3 -1
- package/lib/output/CopyPlugin.js +3 -4
- package/lib/performance/EvalUsagePlugin.js +1 -3
- package/lib/performance/HotspotsPlugin.js +33 -9
- package/lib/performance/PureAnnotationsPlugin.js +16 -10
- package/lib/performance/TopLevelThisPlugin.js +17 -9
- package/lib/prefetch/ResourceHintPlugin.js +1 -1
- package/lib/provide/ProvidedDependency.js +36 -4
- package/lib/rules/BasicEffectRulePlugin.js +1 -1
- package/lib/rules/RuleSetCompiler.js +15 -5
- package/lib/rules/UseEffectRulePlugin.js +1 -3
- package/lib/runtime/AsyncModuleRuntimeModule.js +7 -1
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -5
- package/lib/runtime/RuntimeGlobals.js +6 -0
- package/lib/runtime/RuntimePlugin.js +2 -0
- package/lib/schemes/HttpUriPlugin.js +1 -2
- package/lib/schemes/VirtualUrlPlugin.js +3 -1
- package/lib/serialization/AggregateErrorSerializer.js +3 -3
- package/lib/serialization/BinaryMiddleware.js +4 -1
- package/lib/serialization/ErrorObjectSerializer.js +2 -5
- package/lib/serialization/ObjectMiddleware.js +17 -15
- package/lib/serialization/PlainObjectSerializer.js +3 -7
- package/lib/serialization/Serializer.js +21 -11
- package/lib/serialization/SerializerMiddleware.js +8 -6
- package/lib/stats/DefaultStatsFactoryPlugin.js +35 -35
- package/lib/stats/DefaultStatsPresetPlugin.js +2 -6
- package/lib/stats/DefaultStatsPrinterPlugin.js +12 -11
- package/lib/stats/StatsFactory.js +194 -24
- package/lib/stats/StatsPrinter.js +126 -13
- package/lib/template/DependencyTemplate.js +1 -1
- package/lib/template/RuntimeTemplate.js +13 -32
- package/lib/template/Template.js +1 -1
- package/lib/util/SourceProcessor.js +98 -15
- package/lib/util/WeakTupleMap.js +10 -4
- package/lib/util/cleverMerge.js +61 -33
- package/lib/util/comparators.js +9 -5
- package/lib/util/dataURL.js +2 -0
- package/lib/util/deprecation.js +4 -3
- package/lib/util/globUtils.js +1 -4
- package/lib/util/internalSerializables.js +2 -0
- package/lib/util/makeSerializable.js +6 -4
- package/lib/util/memoize.js +1 -1
- package/lib/util/parseJson.js +2 -2
- package/lib/util/serialization.js +31 -27
- package/lib/wasm/AsyncWasmModule.js +12 -2
- package/lib/wasm/AsyncWebAssemblyGenerator.js +12 -4
- package/lib/wasm/AsyncWebAssemblyJavascriptGenerator.js +13 -5
- package/lib/wasm/AsyncWebAssemblyParser.js +7 -5
- package/lib/wasm/UniversalCompileAsyncWasmPlugin.js +2 -6
- package/lib/wasm-sync/SyncWasmModule.js +16 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +15 -10
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +13 -5
- package/lib/wasm-sync/WebAssemblyParser.js +10 -12
- package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -12
- package/lib/web/FetchCompileWasmPlugin.js +2 -6
- package/package.json +16 -18
- package/schemas/WebpackOptions.check.js +3 -3
- package/schemas/WebpackOptions.json +2 -2
- package/schemas/plugins/BannerPlugin.check.js +3 -3
- package/schemas/plugins/HtmlGeneratorOptions.check.js +3 -3
- package/schemas/plugins/HtmlParserOptions.check.js +3 -3
- package/schemas/plugins/IgnorePlugin.check.js +3 -3
- package/schemas/plugins/LoaderOptionsPlugin.check.js +3 -3
- package/schemas/plugins/ManifestPlugin.check.js +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +3 -3
- package/schemas/plugins/SSRManifestPlugin.check.js +3 -3
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +3 -3
- package/schemas/plugins/WatchIgnorePlugin.check.js +3 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +3 -3
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +3 -3
- package/schemas/plugins/asset/AssetParserOptions.check.js +3 -3
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +3 -3
- package/schemas/plugins/container/ContainerPlugin.check.js +3 -3
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +3 -3
- package/schemas/plugins/container/ExternalsType.check.js +3 -3
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +3 -3
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +3 -3
- package/schemas/plugins/css/CssGeneratorOptions.check.js +3 -3
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +3 -3
- package/schemas/plugins/css/CssModuleParserOptions.check.js +3 -3
- package/schemas/plugins/css/CssParserOptions.check.js +3 -3
- package/schemas/plugins/debug/ProfilingPlugin.check.js +3 -3
- package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
- package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.js +3 -3
- package/schemas/plugins/dll/DllReferencePlugin.check.js +3 -3
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +3 -3
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +3 -3
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +3 -3
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +3 -3
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +3 -3
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +3 -3
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +3 -3
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +3 -3
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +3 -3
- package/schemas/plugins/output/CleanOptions.check.js +7 -0
- package/schemas/plugins/output/CleanOptions.json +3 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +3 -3
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +3 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +3 -3
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +3 -3
- package/schemas/plugins/sharing/SharePlugin.check.js +3 -3
- package/types.d.ts +1482 -358
package/lib/util/comparators.js
CHANGED
|
@@ -93,7 +93,9 @@ const compareIds = (a, b) => {
|
|
|
93
93
|
*/
|
|
94
94
|
const compareIterables = (elementComparator) => {
|
|
95
95
|
const cacheEntry = compareIteratorsCache.get(elementComparator);
|
|
96
|
-
if (cacheEntry !== undefined)
|
|
96
|
+
if (cacheEntry !== undefined) {
|
|
97
|
+
return /** @type {Comparator<Iterable<T>>} */ (cacheEntry);
|
|
98
|
+
}
|
|
97
99
|
/**
|
|
98
100
|
* Returns compare result.
|
|
99
101
|
* @param {Iterable<T>} a first value
|
|
@@ -419,7 +421,7 @@ class TwoKeyWeakMap {
|
|
|
419
421
|
}
|
|
420
422
|
}
|
|
421
423
|
|
|
422
|
-
/** @type {TwoKeyWeakMap<Comparator<
|
|
424
|
+
/** @type {TwoKeyWeakMap<Comparator<never>, Comparator<never>, Comparator<never>>} */
|
|
423
425
|
const concatComparatorsCache = new TwoKeyWeakMap();
|
|
424
426
|
|
|
425
427
|
/**
|
|
@@ -460,7 +462,7 @@ const concatComparators = (c1, c2, ...cRest) => {
|
|
|
460
462
|
* @typedef {(input: A) => B | undefined | null} Selector
|
|
461
463
|
*/
|
|
462
464
|
|
|
463
|
-
/** @type {TwoKeyWeakMap<
|
|
465
|
+
/** @type {TwoKeyWeakMap<(input: never) => void, Comparator<never>, Comparator<never>>} */
|
|
464
466
|
const compareSelectCache = new TwoKeyWeakMap();
|
|
465
467
|
|
|
466
468
|
/**
|
|
@@ -473,7 +475,9 @@ const compareSelectCache = new TwoKeyWeakMap();
|
|
|
473
475
|
*/
|
|
474
476
|
const compareSelect = (getter, comparator) => {
|
|
475
477
|
const cacheEntry = compareSelectCache.get(getter, comparator);
|
|
476
|
-
if (cacheEntry !== undefined)
|
|
478
|
+
if (cacheEntry !== undefined) {
|
|
479
|
+
return /** @type {Comparator<T>} */ (cacheEntry);
|
|
480
|
+
}
|
|
477
481
|
/**
|
|
478
482
|
* Returns compare result.
|
|
479
483
|
* @param {T} a first value
|
|
@@ -530,7 +534,7 @@ const compareErrors = concatComparators(
|
|
|
530
534
|
)
|
|
531
535
|
);
|
|
532
536
|
|
|
533
|
-
/** @type {WeakMap<Comparator<
|
|
537
|
+
/** @type {WeakMap<Comparator<never>, Comparator<Iterable<never>>>} */
|
|
534
538
|
const compareIteratorsCache = new WeakMap();
|
|
535
539
|
|
|
536
540
|
// TODO this is no longer needed when minimum node.js version is >= 12
|
package/lib/util/dataURL.js
CHANGED
package/lib/util/deprecation.js
CHANGED
|
@@ -96,7 +96,7 @@ module.exports.arrayToSetDeprecation = (set, name) => {
|
|
|
96
96
|
`${name} was changed from Array to Set (using Array method '${method}' is deprecated)`,
|
|
97
97
|
"ARRAY_TO_SET"
|
|
98
98
|
);
|
|
99
|
-
/** @type {
|
|
99
|
+
/** @type {Set<T> & Record<COPY_METHODS_NAMES, (this: Set<T>) => void>} */
|
|
100
100
|
(set)[method] =
|
|
101
101
|
// eslint-disable-next-line func-names
|
|
102
102
|
function () {
|
|
@@ -318,10 +318,11 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
|
|
318
318
|
set: util.deprecate(
|
|
319
319
|
/**
|
|
320
320
|
* Handles the callback logic for this hook.
|
|
321
|
+
* @template V
|
|
321
322
|
* @param {object} target target
|
|
322
323
|
* @param {string | symbol} property property
|
|
323
|
-
* @param {
|
|
324
|
-
* @param {
|
|
324
|
+
* @param {V} value value
|
|
325
|
+
* @param {T} receiver receiver
|
|
325
326
|
* @returns {boolean} result
|
|
326
327
|
*/
|
|
327
328
|
(target, property, value, receiver) =>
|
package/lib/util/globUtils.js
CHANGED
|
@@ -15,10 +15,7 @@ const memoize = require("./memoize");
|
|
|
15
15
|
|
|
16
16
|
// watchpack's glob-to-regexp core, loaded only when a glob is translated
|
|
17
17
|
const getGlobToRegExpSource = memoize(
|
|
18
|
-
() =>
|
|
19
|
-
/** @type {{ util: { globToRegExp: (glob: string) => string } }} */ (
|
|
20
|
-
/** @type {unknown} */ (require("watchpack"))
|
|
21
|
-
).util.globToRegExp
|
|
18
|
+
() => require("watchpack").util.globToRegExp
|
|
22
19
|
);
|
|
23
20
|
|
|
24
21
|
/** @typedef {{ caseSensitive?: boolean, requireLiteralLeadingDot?: boolean }} GlobMatchOptions */
|
|
@@ -315,6 +315,8 @@ module.exports = {
|
|
|
315
315
|
require("../dependencies/esm/ESMImportSideEffectDependency"),
|
|
316
316
|
"dependencies/esm/ESMImportSpecifierDependency": () =>
|
|
317
317
|
require("../dependencies/esm/ESMImportSpecifierDependency"),
|
|
318
|
+
"dependencies/esm/ESMLiveExportDependency": () =>
|
|
319
|
+
require("../dependencies/esm/ESMLiveExportDependency"),
|
|
318
320
|
"dependencies/esm/TopLevelAwaitDependency": () =>
|
|
319
321
|
require("../dependencies/esm/TopLevelAwaitDependency"),
|
|
320
322
|
"dependencies/hmr/ImportMetaHotAcceptDependency": () =>
|
|
@@ -8,7 +8,6 @@ const { register, registerLegacyRequest } = require("./serialization");
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @import {
|
|
11
|
-
* Constructor,
|
|
12
11
|
* ObjectDeserializerContext,
|
|
13
12
|
* ObjectSerializerContext
|
|
14
13
|
* } from "../serialization/ObjectMiddleware"
|
|
@@ -18,7 +17,7 @@ const { register, registerLegacyRequest } = require("./serialization");
|
|
|
18
17
|
/**
|
|
19
18
|
* Defines the serializable class constructor type used by this module.
|
|
20
19
|
* @template {SerializableClass} T
|
|
21
|
-
* @typedef {(new (...params:
|
|
20
|
+
* @typedef {(new (...params: never[]) => T) & { deserialize?: (context: ObjectDeserializerContext) => T }} SerializableClassConstructor
|
|
22
21
|
*/
|
|
23
22
|
|
|
24
23
|
/**
|
|
@@ -64,7 +63,7 @@ class ClassSerializer {
|
|
|
64
63
|
* keep requests the class was written under before a move readable: the first
|
|
65
64
|
* is the one it is written under now, the rest restore older cache packs; a
|
|
66
65
|
* historical entry written under another name pairs its request with it.
|
|
67
|
-
* @template {
|
|
66
|
+
* @template {new (...params: never[]) => EXPECTED_OBJECT} T
|
|
68
67
|
* @param {T} Constructor the constructor
|
|
69
68
|
* @param {string | (string | [string, string | null])[]} request the request which will be required when deserializing, current one first
|
|
70
69
|
* @param {string | null=} name the name to make multiple serializer unique when sharing a request
|
|
@@ -75,7 +74,10 @@ module.exports = (Constructor, request, name = null) => {
|
|
|
75
74
|
Constructor,
|
|
76
75
|
/** @type {string} */ (requests[0]),
|
|
77
76
|
name,
|
|
78
|
-
new ClassSerializer(
|
|
77
|
+
new ClassSerializer(
|
|
78
|
+
/** @type {SerializableClassConstructor<SerializableClass>} */
|
|
79
|
+
(Constructor)
|
|
80
|
+
)
|
|
79
81
|
);
|
|
80
82
|
// TODO in the next major release: remove, dropping every request but the
|
|
81
83
|
// first from each caller, which stops pre-move cache packs loading
|
package/lib/util/memoize.js
CHANGED
package/lib/util/parseJson.js
CHANGED
|
@@ -8,7 +8,7 @@ const memoize = require("./memoize");
|
|
|
8
8
|
|
|
9
9
|
const getJSONParseError = memoize(() => require("../errors/JSONParseError"));
|
|
10
10
|
|
|
11
|
-
/** @import { JsonValue } from "../fs/fs" */
|
|
11
|
+
/** @import { JsonArray, JsonObject, JsonValue } from "../fs/fs" */
|
|
12
12
|
|
|
13
13
|
// Inspired by https://github.com/npm/json-parse-even-better-errors
|
|
14
14
|
|
|
@@ -25,7 +25,7 @@ const stripBOM = (txt) => String(txt).replace(/^\uFEFF/, "");
|
|
|
25
25
|
* @template [R=JsonValue]
|
|
26
26
|
* @callback ParseJsonFn
|
|
27
27
|
* @param {string} raw text
|
|
28
|
-
* @param {(this:
|
|
28
|
+
* @param {(this: JsonObject | JsonArray, key: string, value: JsonValue) => JsonValue=} reviver reviver
|
|
29
29
|
* @returns {R} parsed JSON
|
|
30
30
|
*/
|
|
31
31
|
|
|
@@ -54,6 +54,12 @@ const registerSerializers = memoize(() => {
|
|
|
54
54
|
*/
|
|
55
55
|
/** @import { HashFunction } from "../util/Hash" */
|
|
56
56
|
/** @import { IntermediateFileSystem } from "../fs/fs" */
|
|
57
|
+
/**
|
|
58
|
+
* @import {
|
|
59
|
+
* BufferSerializableType,
|
|
60
|
+
* ComplexSerializableType
|
|
61
|
+
* } from "../serialization/types"
|
|
62
|
+
*/
|
|
57
63
|
|
|
58
64
|
/**
|
|
59
65
|
* Defines the serializer type used by this module.
|
|
@@ -62,7 +68,7 @@ const registerSerializers = memoize(() => {
|
|
|
62
68
|
*/
|
|
63
69
|
|
|
64
70
|
/**
|
|
65
|
-
* @type {Serializer<
|
|
71
|
+
* @type {Serializer<ComplexSerializableType, BufferSerializableType[], EXPECTED_OBJECT>}
|
|
66
72
|
*/
|
|
67
73
|
let buffersSerializer;
|
|
68
74
|
|
|
@@ -97,7 +103,7 @@ module.exports = {
|
|
|
97
103
|
const Serializer = getSerializer();
|
|
98
104
|
const binaryMiddleware = getBinaryMiddlewareInstance();
|
|
99
105
|
const SingleItemMiddleware = getSingleItemMiddleware();
|
|
100
|
-
return /** @type {Serializer<
|
|
106
|
+
return /** @type {Serializer<ComplexSerializableType, BufferSerializableType[], EXPECTED_OBJECT>} */ (
|
|
101
107
|
buffersSerializer = new Serializer([
|
|
102
108
|
new SingleItemMiddleware(),
|
|
103
109
|
new ObjectMiddleware((context) => {
|
|
@@ -129,30 +135,28 @@ module.exports = {
|
|
|
129
135
|
const fileMiddleware = new FileMiddleware(fs, hashFunction);
|
|
130
136
|
const binaryMiddleware = getBinaryMiddlewareInstance();
|
|
131
137
|
const SingleItemMiddleware = getSingleItemMiddleware();
|
|
132
|
-
return
|
|
133
|
-
new
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
context.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
])
|
|
156
|
-
);
|
|
138
|
+
return new Serializer([
|
|
139
|
+
new SingleItemMiddleware(),
|
|
140
|
+
new ObjectMiddleware((context) => {
|
|
141
|
+
if ("write" in context) {
|
|
142
|
+
context.writeLazy = (value) => {
|
|
143
|
+
context.write(
|
|
144
|
+
SerializerMiddleware.createLazy(value, binaryMiddleware)
|
|
145
|
+
);
|
|
146
|
+
};
|
|
147
|
+
context.writeSeparate = (value, options) => {
|
|
148
|
+
const lazy = SerializerMiddleware.createLazy(
|
|
149
|
+
value,
|
|
150
|
+
fileMiddleware,
|
|
151
|
+
options
|
|
152
|
+
);
|
|
153
|
+
context.write(lazy);
|
|
154
|
+
return lazy;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}, hashFunction),
|
|
158
|
+
binaryMiddleware,
|
|
159
|
+
fileMiddleware
|
|
160
|
+
]);
|
|
157
161
|
}
|
|
158
162
|
};
|
|
@@ -7,12 +7,22 @@
|
|
|
7
7
|
const NormalModule = require("../module/NormalModule");
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
|
-
/** @import Module from "../module/Module" */
|
|
11
|
-
/**
|
|
10
|
+
/** @import Module, { BuildMeta } from "../module/Module" */
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* NormalModuleBuildInfo,
|
|
14
|
+
* NormalModuleCreateData
|
|
15
|
+
* } from "../module/NormalModule"
|
|
16
|
+
*/
|
|
12
17
|
/** @import { ImportPhaseName } from "../dependencies/core/ImportPhase" */
|
|
13
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
|
|
14
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
|
|
15
20
|
|
|
21
|
+
/**
|
|
22
|
+
* A built async wasm module, typed with its build info and build meta.
|
|
23
|
+
* @typedef {NormalModule & { buildInfo: NormalModuleBuildInfo, buildMeta: BuildMeta }} BuiltAsyncWasmModule
|
|
24
|
+
*/
|
|
25
|
+
|
|
16
26
|
/**
|
|
17
27
|
* Module class for `webassembly/async` modules. Wasm-specific properties should live here instead of `NormalModule`.
|
|
18
28
|
*/
|
|
@@ -20,6 +20,14 @@ const { WEBASSEMBLY_TYPES } = require("../module/ModuleSourceTypeConstants");
|
|
|
20
20
|
* @property {boolean=} mangleImports mangle imports
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
25
|
+
* @typedef {NormalModule} TModule
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @extends {Generator<TModule>}
|
|
30
|
+
*/
|
|
23
31
|
class AsyncWebAssemblyGenerator extends Generator {
|
|
24
32
|
/**
|
|
25
33
|
* Creates an instance of AsyncWebAssemblyGenerator.
|
|
@@ -33,7 +41,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
33
41
|
|
|
34
42
|
/**
|
|
35
43
|
* Returns the source types available for this module.
|
|
36
|
-
* @param {
|
|
44
|
+
* @param {TModule} module fresh module
|
|
37
45
|
* @returns {SourceTypes} available types (do not mutate)
|
|
38
46
|
*/
|
|
39
47
|
getTypes(module) {
|
|
@@ -42,7 +50,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
42
50
|
|
|
43
51
|
/**
|
|
44
52
|
* Returns the estimated size for the requested source type.
|
|
45
|
-
* @param {
|
|
53
|
+
* @param {TModule} module the module
|
|
46
54
|
* @param {SourceType=} type source type
|
|
47
55
|
* @returns {number} estimate size of the module
|
|
48
56
|
*/
|
|
@@ -56,7 +64,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
56
64
|
|
|
57
65
|
/**
|
|
58
66
|
* Generates generated code for this runtime module.
|
|
59
|
-
* @param {
|
|
67
|
+
* @param {TModule} module module for which the code should be generated
|
|
60
68
|
* @param {GenerateContext} generateContext context for generate
|
|
61
69
|
* @returns {Source | null} generated code
|
|
62
70
|
*/
|
|
@@ -67,7 +75,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
67
75
|
/**
|
|
68
76
|
* Generates fallback output for the provided error condition.
|
|
69
77
|
* @param {Error} error the error
|
|
70
|
-
* @param {
|
|
78
|
+
* @param {TModule} module module for which the code should be generated
|
|
71
79
|
* @param {GenerateContext} generateContext context for generate
|
|
72
80
|
* @returns {Source | null} generated code
|
|
73
81
|
*/
|
|
@@ -25,10 +25,18 @@ const Template = require("../template/Template");
|
|
|
25
25
|
* @typedef {{ request: string, importVar: string, dependency: WebAssemblyImportDependency }} ImportObjRequestItem
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
30
|
+
* @typedef {NormalModule} TModule
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @extends {Generator<TModule>}
|
|
35
|
+
*/
|
|
28
36
|
class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
29
37
|
/**
|
|
30
38
|
* Returns the source types available for this module.
|
|
31
|
-
* @param {
|
|
39
|
+
* @param {TModule} module fresh module
|
|
32
40
|
* @returns {SourceTypes} available types (do not mutate)
|
|
33
41
|
*/
|
|
34
42
|
getTypes(module) {
|
|
@@ -37,7 +45,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
37
45
|
|
|
38
46
|
/**
|
|
39
47
|
* Returns the estimated size for the requested source type.
|
|
40
|
-
* @param {
|
|
48
|
+
* @param {TModule} module the module
|
|
41
49
|
* @param {SourceType=} type source type
|
|
42
50
|
* @returns {number} estimate size of the module
|
|
43
51
|
*/
|
|
@@ -53,7 +61,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
53
61
|
|
|
54
62
|
/**
|
|
55
63
|
* Generates generated code for this runtime module.
|
|
56
|
-
* @param {
|
|
64
|
+
* @param {TModule} module module for which the code should be generated
|
|
57
65
|
* @param {GenerateContext} generateContext context for generate
|
|
58
66
|
* @returns {Source | null} generated code
|
|
59
67
|
*/
|
|
@@ -236,7 +244,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
236
244
|
|
|
237
245
|
/**
|
|
238
246
|
* Generate code for source phase import (returns WebAssembly.Module)
|
|
239
|
-
* @param {
|
|
247
|
+
* @param {TModule} module module for which the code should be generated
|
|
240
248
|
* @param {GenerateContext} generateContext context for generate
|
|
241
249
|
* @returns {Source} generated code
|
|
242
250
|
*/
|
|
@@ -298,7 +306,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
298
306
|
/**
|
|
299
307
|
* Generates fallback output for the provided error condition.
|
|
300
308
|
* @param {Error} error the error
|
|
301
|
-
* @param {
|
|
309
|
+
* @param {TModule} module module for which the code should be generated
|
|
302
310
|
* @param {GenerateContext} generateContext context for generate
|
|
303
311
|
* @returns {Source | null} generated code
|
|
304
312
|
*/
|
|
@@ -16,8 +16,7 @@ const getEnvironmentNotSupportAsyncWarning = memoize(() =>
|
|
|
16
16
|
require("../errors/EnvironmentNotSupportAsyncWarning")
|
|
17
17
|
);
|
|
18
18
|
|
|
19
|
-
/** @import AsyncWasmModule from "./AsyncWasmModule" */
|
|
20
|
-
/** @import { BuildInfo, BuildMeta } from "../module/Module" */
|
|
19
|
+
/** @import AsyncWasmModule, { BuiltAsyncWasmModule } from "./AsyncWasmModule" */
|
|
21
20
|
/** @import { ParserState, PreparsedAst } from "../module/Parser" */
|
|
22
21
|
|
|
23
22
|
const WASM_HEADER = Buffer.from([0x00, 0x61, 0x73, 0x6d]);
|
|
@@ -30,6 +29,9 @@ const decoderOpts = {
|
|
|
30
29
|
ignoreCustomNameSection: true
|
|
31
30
|
};
|
|
32
31
|
|
|
32
|
+
/**
|
|
33
|
+
* @extends {Parser<BuiltAsyncWasmModule>}
|
|
34
|
+
*/
|
|
33
35
|
class AsyncWebAssemblyParser extends Parser {
|
|
34
36
|
/**
|
|
35
37
|
* Parses the provided source and updates the parser state.
|
|
@@ -42,7 +44,9 @@ class AsyncWebAssemblyParser extends Parser {
|
|
|
42
44
|
throw new Error("AsyncWebAssemblyParser input must be a Buffer");
|
|
43
45
|
}
|
|
44
46
|
|
|
45
|
-
const buildMeta = /** @type {
|
|
47
|
+
const { buildInfo, buildMeta } = /** @type {BuiltAsyncWasmModule} */ (
|
|
48
|
+
state.module
|
|
49
|
+
);
|
|
46
50
|
buildMeta.exportsType = "namespace";
|
|
47
51
|
buildMeta.async = true;
|
|
48
52
|
|
|
@@ -53,8 +57,6 @@ class AsyncWebAssemblyParser extends Parser {
|
|
|
53
57
|
);
|
|
54
58
|
|
|
55
59
|
// flag it as async module
|
|
56
|
-
const buildInfo = /** @type {BuildInfo} */ (state.module.buildInfo);
|
|
57
|
-
|
|
58
60
|
buildInfo.strict = true;
|
|
59
61
|
|
|
60
62
|
if (/** @type {AsyncWasmModule} */ (state.module).phase === "source") {
|
|
@@ -119,9 +119,7 @@ class UniversalCompileAsyncWasmPlugin {
|
|
|
119
119
|
chunk,
|
|
120
120
|
new AsyncWasmLoadingRuntimeModule({
|
|
121
121
|
fullHashDigest: usesFullHashDigest(
|
|
122
|
-
|
|
123
|
-
compilation.outputOptions.webassemblyModuleFilename
|
|
124
|
-
)
|
|
122
|
+
compilation.outputOptions.webassemblyModuleFilename
|
|
125
123
|
),
|
|
126
124
|
generateBeforeLoadBinaryCode,
|
|
127
125
|
generateLoadBinaryCode,
|
|
@@ -147,9 +145,7 @@ class UniversalCompileAsyncWasmPlugin {
|
|
|
147
145
|
chunk,
|
|
148
146
|
new AsyncWasmCompileRuntimeModule({
|
|
149
147
|
fullHashDigest: usesFullHashDigest(
|
|
150
|
-
|
|
151
|
-
compilation.outputOptions.webassemblyModuleFilename
|
|
152
|
-
)
|
|
148
|
+
compilation.outputOptions.webassemblyModuleFilename
|
|
153
149
|
),
|
|
154
150
|
generateBeforeLoadBinaryCode,
|
|
155
151
|
generateLoadBinaryCode,
|
|
@@ -8,7 +8,12 @@ const NormalModule = require("../module/NormalModule");
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
10
|
/** @import { BuildMeta } from "../module/Module" */
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* NormalModuleBuildInfo,
|
|
14
|
+
* NormalModuleCreateData
|
|
15
|
+
* } from "../module/NormalModule"
|
|
16
|
+
*/
|
|
12
17
|
|
|
13
18
|
/**
|
|
14
19
|
* Defines the build meta properties specific to sync wasm modules.
|
|
@@ -18,6 +23,16 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
18
23
|
|
|
19
24
|
/** @typedef {BuildMeta & KnownSyncWasmModuleBuildMeta} SyncWasmModuleBuildMeta */
|
|
20
25
|
|
|
26
|
+
/**
|
|
27
|
+
* A sync wasm module before or after its build, typed with its build meta.
|
|
28
|
+
* @typedef {NormalModule & { buildMeta?: SyncWasmModuleBuildMeta }} SyncWasmNormalModule
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A built sync wasm module, typed with its build info and build meta.
|
|
33
|
+
* @typedef {NormalModule & { buildInfo: NormalModuleBuildInfo, buildMeta: SyncWasmModuleBuildMeta }} BuiltSyncWasmModule
|
|
34
|
+
*/
|
|
35
|
+
|
|
21
36
|
/**
|
|
22
37
|
* Module class for `webassembly/sync` modules. Wasm-specific properties should live here instead of `NormalModule`.
|
|
23
38
|
*/
|
|
@@ -15,12 +15,11 @@ const Generator = require("../module/Generator");
|
|
|
15
15
|
const { WEBASSEMBLY_TYPES } = require("../module/ModuleSourceTypeConstants");
|
|
16
16
|
const WebAssemblyUtils = require("./WebAssemblyUtils");
|
|
17
17
|
|
|
18
|
-
/** @import
|
|
18
|
+
/** @import { SyncWasmNormalModule } from "./SyncWasmModule" */
|
|
19
19
|
/** @import { Source } from "webpack-sources" */
|
|
20
20
|
/** @import { GenerateContext, UpdateHashContext } from "../module/Generator" */
|
|
21
21
|
/** @import Module, { SourceType, SourceTypes } from "../module/Module" */
|
|
22
22
|
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
23
|
-
/** @import NormalModule from "../module/NormalModule" */
|
|
24
23
|
/** @import Hash from "../util/Hash" */
|
|
25
24
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
26
25
|
/** @import { UsedWasmDependency } from "./WebAssemblyUtils" */
|
|
@@ -421,6 +420,14 @@ const getUsedDependencyMap = (moduleGraph, module, mangle) => {
|
|
|
421
420
|
* @property {boolean=} mangleImports mangle imports
|
|
422
421
|
*/
|
|
423
422
|
|
|
423
|
+
/**
|
|
424
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
425
|
+
* @typedef {SyncWasmNormalModule} TModule
|
|
426
|
+
*/
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* @extends {Generator<TModule>}
|
|
430
|
+
*/
|
|
424
431
|
class WebAssemblyGenerator extends Generator {
|
|
425
432
|
/**
|
|
426
433
|
* Creates an instance of WebAssemblyGenerator.
|
|
@@ -434,7 +441,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
434
441
|
|
|
435
442
|
/**
|
|
436
443
|
* Returns the source types available for this module.
|
|
437
|
-
* @param {
|
|
444
|
+
* @param {TModule} module fresh module
|
|
438
445
|
* @returns {SourceTypes} available types (do not mutate)
|
|
439
446
|
*/
|
|
440
447
|
getTypes(module) {
|
|
@@ -443,7 +450,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
443
450
|
|
|
444
451
|
/**
|
|
445
452
|
* Returns the estimated size for the requested source type.
|
|
446
|
-
* @param {
|
|
453
|
+
* @param {TModule} module the module
|
|
447
454
|
* @param {SourceType=} type source type
|
|
448
455
|
* @returns {number} estimate size of the module
|
|
449
456
|
*/
|
|
@@ -457,7 +464,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
457
464
|
|
|
458
465
|
/**
|
|
459
466
|
* Generates generated code for this runtime module.
|
|
460
|
-
* @param {
|
|
467
|
+
* @param {TModule} module module for which the code should be generated
|
|
461
468
|
* @param {GenerateContext} generateContext context for generate
|
|
462
469
|
* @returns {Source | null} generated code
|
|
463
470
|
*/
|
|
@@ -492,9 +499,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
492
499
|
module.dependencies
|
|
493
500
|
.filter((d) => isDependencyKind(d, "webassembly-export-imported"))
|
|
494
501
|
.map((d) => {
|
|
495
|
-
const wasmDep =
|
|
496
|
-
d
|
|
497
|
-
);
|
|
502
|
+
const wasmDep = d;
|
|
498
503
|
return wasmDep.exportName;
|
|
499
504
|
})
|
|
500
505
|
);
|
|
@@ -540,7 +545,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
540
545
|
/**
|
|
541
546
|
* Generates fallback output for the provided error condition.
|
|
542
547
|
* @param {Error} error the error
|
|
543
|
-
* @param {
|
|
548
|
+
* @param {TModule} module module for which the code should be generated
|
|
544
549
|
* @param {GenerateContext} generateContext context for generate
|
|
545
550
|
* @returns {Source | null} generated code
|
|
546
551
|
*/
|
|
@@ -556,7 +561,7 @@ class WebAssemblyGenerator extends Generator {
|
|
|
556
561
|
/**
|
|
557
562
|
* Updates the hash with the data contributed by this instance.
|
|
558
563
|
* @param {Hash} hash hash that will be modified
|
|
559
|
-
* @param {UpdateHashContext} updateHashContext context for updating hash
|
|
564
|
+
* @param {UpdateHashContext<TModule>} updateHashContext context for updating hash
|
|
560
565
|
*/
|
|
561
566
|
updateHash(hash, updateHashContext) {
|
|
562
567
|
if (this.options.mangleImports) {
|
|
@@ -14,16 +14,24 @@ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
|
14
14
|
const InitFragment = require("../template/InitFragment");
|
|
15
15
|
const Template = require("../template/Template");
|
|
16
16
|
|
|
17
|
+
/** @import { SyncWasmNormalModule } from "./SyncWasmModule" */
|
|
17
18
|
/** @import { Source } from "webpack-sources" */
|
|
18
19
|
/** @import { GenerateContext } from "../module/Generator" */
|
|
19
20
|
/** @import ModuleDependency from "../dependencies/core/ModuleDependency" */
|
|
20
21
|
/** @import Module, { SourceType, SourceTypes } from "../module/Module" */
|
|
21
|
-
/** @import NormalModule from "../module/NormalModule" */
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
25
|
+
* @typedef {SyncWasmNormalModule} TModule
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @extends {Generator<TModule>}
|
|
30
|
+
*/
|
|
23
31
|
class WebAssemblyJavascriptGenerator extends Generator {
|
|
24
32
|
/**
|
|
25
33
|
* Returns the source types available for this module.
|
|
26
|
-
* @param {
|
|
34
|
+
* @param {TModule} module fresh module
|
|
27
35
|
* @returns {SourceTypes} available types (do not mutate)
|
|
28
36
|
*/
|
|
29
37
|
getTypes(module) {
|
|
@@ -32,7 +40,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
|
|
|
32
40
|
|
|
33
41
|
/**
|
|
34
42
|
* Returns the estimated size for the requested source type.
|
|
35
|
-
* @param {
|
|
43
|
+
* @param {TModule} module the module
|
|
36
44
|
* @param {SourceType=} type source type
|
|
37
45
|
* @returns {number} estimate size of the module
|
|
38
46
|
*/
|
|
@@ -42,7 +50,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
|
|
|
42
50
|
|
|
43
51
|
/**
|
|
44
52
|
* Generates generated code for this runtime module.
|
|
45
|
-
* @param {
|
|
53
|
+
* @param {TModule} module module for which the code should be generated
|
|
46
54
|
* @param {GenerateContext} generateContext context for generate
|
|
47
55
|
* @returns {Source | null} generated code
|
|
48
56
|
*/
|
|
@@ -225,7 +233,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
|
|
|
225
233
|
/**
|
|
226
234
|
* Generates fallback output for the provided error condition.
|
|
227
235
|
* @param {Error} error the error
|
|
228
|
-
* @param {
|
|
236
|
+
* @param {TModule} module module for which the code should be generated
|
|
229
237
|
* @param {GenerateContext} generateContext context for generate
|
|
230
238
|
* @returns {Source | null} generated code
|
|
231
239
|
*/
|