webpack 5.85.0 → 5.88.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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/README.md +5 -2
- package/lib/APIPlugin.js +150 -99
- package/lib/AsyncDependenciesBlock.js +3 -3
- package/lib/BannerPlugin.js +2 -1
- package/lib/CaseSensitiveModulesWarning.js +3 -1
- package/lib/Chunk.js +35 -17
- package/lib/ChunkGraph.js +4 -4
- package/lib/ChunkGroup.js +20 -9
- package/lib/CompatibilityPlugin.js +50 -30
- package/lib/Compilation.js +2 -1
- package/lib/Compiler.js +10 -9
- package/lib/ConcatenationScope.js +2 -2
- package/lib/ConditionalInitFragment.js +11 -1
- package/lib/ConstPlugin.js +73 -32
- package/lib/ContextModule.js +8 -3
- package/lib/ContextModuleFactory.js +1 -0
- package/lib/ContextReplacementPlugin.js +13 -0
- package/lib/DelegatedModule.js +15 -3
- package/lib/DelegatedModuleFactoryPlugin.js +6 -0
- package/lib/DependenciesBlock.js +1 -1
- package/lib/Dependency.js +11 -5
- package/lib/DependencyTemplates.js +1 -1
- package/lib/DllEntryPlugin.js +11 -1
- package/lib/DllModule.js +6 -0
- package/lib/DllReferencePlugin.js +13 -1
- package/lib/Entrypoint.js +1 -1
- package/lib/ErrorHelpers.js +1 -0
- package/lib/EvalSourceMapDevToolPlugin.js +6 -1
- package/lib/ExportsInfo.js +22 -4
- package/lib/ExportsInfoApiPlugin.js +14 -5
- package/lib/ExternalModule.js +20 -8
- package/lib/FileSystemInfo.js +52 -24
- package/lib/FlagAllModulesAsUsedPlugin.js +6 -1
- package/lib/FlagDependencyUsagePlugin.js +3 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -0
- package/lib/Generator.js +7 -0
- package/lib/HotModuleReplacementPlugin.js +8 -0
- package/lib/InitFragment.js +28 -5
- package/lib/JavascriptMetaInfoPlugin.js +11 -6
- package/lib/LibManifestPlugin.js +20 -4
- package/lib/Module.js +14 -3
- package/lib/ModuleDependencyError.js +4 -2
- package/lib/ModuleDependencyWarning.js +4 -2
- package/lib/ModuleGraph.js +31 -24
- package/lib/ModuleGraphConnection.js +19 -6
- package/lib/ModuleInfoHeaderPlugin.js +9 -2
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +2 -0
- package/lib/ModuleStoreError.js +2 -1
- package/lib/ModuleTypeConstants.js +7 -0
- package/lib/MultiWatching.js +4 -0
- package/lib/NodeStuffPlugin.js +32 -6
- package/lib/ProgressPlugin.js +71 -15
- package/lib/ProvidePlugin.js +13 -4
- package/lib/RawModule.js +3 -1
- package/lib/RequireJsStuffPlugin.js +7 -0
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimeModule.js +3 -3
- package/lib/RuntimePlugin.js +6 -3
- package/lib/RuntimeTemplate.js +22 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +7 -2
- package/lib/UseStrictPlugin.js +10 -3
- package/lib/Watching.js +62 -25
- package/lib/WebpackError.js +6 -5
- package/lib/WebpackIsIncludedPlugin.js +6 -4
- package/lib/WebpackOptionsApply.js +4 -2
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +2 -1
- package/lib/asset/AssetParser.js +11 -6
- package/lib/asset/AssetSourceParser.js +8 -3
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/buildChunkGraph.js +37 -21
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/PackFileCacheStrategy.js +53 -22
- package/lib/config/browserslistTargetHandler.js +7 -7
- package/lib/config/defaults.js +43 -26
- package/lib/container/RemoteRuntimeModule.js +1 -1
- package/lib/css/CssExportsGenerator.js +9 -0
- package/lib/css/CssGenerator.js +1 -1
- package/lib/css/CssLoadingRuntimeModule.js +43 -19
- package/lib/css/CssModulesPlugin.js +42 -14
- package/lib/css/CssParser.js +22 -0
- package/lib/dependencies/AMDDefineDependency.js +34 -4
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +5 -0
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsExportsParserPlugin.js +14 -4
- package/lib/dependencies/CommonJsImportsParserPlugin.js +169 -59
- package/lib/dependencies/CommonJsPlugin.js +13 -8
- package/lib/dependencies/CommonJsRequireContextDependency.js +2 -2
- package/lib/dependencies/ConstDependency.js +2 -2
- package/lib/dependencies/ContextDependency.js +7 -2
- package/lib/dependencies/CssImportDependency.js +1 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +5 -0
- package/lib/dependencies/CssUrlDependency.js +3 -3
- package/lib/dependencies/DllEntryDependency.js +5 -0
- package/lib/dependencies/DynamicExports.js +10 -6
- package/lib/dependencies/ExportsInfoDependency.js +14 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +2 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +12 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +4 -4
- package/lib/dependencies/HarmonyExports.js +9 -5
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +40 -27
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +1 -2
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +31 -21
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportDependency.js +5 -3
- package/lib/dependencies/ImportEagerDependency.js +5 -3
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +19 -0
- package/lib/dependencies/ImportMetaPlugin.js +31 -15
- package/lib/dependencies/ImportParserPlugin.js +62 -25
- package/lib/dependencies/ImportWeakDependency.js +5 -3
- package/lib/dependencies/JsonExportsDependency.js +1 -1
- package/lib/dependencies/ModuleDependency.js +1 -1
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ProvidedDependency.js +4 -1
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +13 -5
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +5 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +6 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +26 -5
- package/lib/dependencies/RequireResolveHeaderDependency.js +9 -0
- package/lib/dependencies/SystemPlugin.js +17 -5
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +2 -2
- package/lib/dependencies/URLPlugin.js +9 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +1 -1
- package/lib/dependencies/WorkerPlugin.js +59 -22
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +1 -1
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +1 -0
- package/lib/javascript/BasicEvaluatedExpression.js +28 -19
- package/lib/javascript/CommonJsChunkFormatPlugin.js +6 -2
- package/lib/javascript/JavascriptModulesPlugin.js +25 -5
- package/lib/javascript/JavascriptParser.js +157 -85
- package/lib/javascript/JavascriptParserHelpers.js +37 -15
- package/lib/json/JsonData.js +2 -2
- package/lib/json/JsonParser.js +25 -12
- package/lib/library/AmdLibraryPlugin.js +2 -2
- package/lib/library/AssignLibraryPlugin.js +13 -1
- package/lib/library/EnableLibraryPlugin.js +4 -0
- package/lib/library/SystemLibraryPlugin.js +1 -1
- package/lib/library/UmdLibraryPlugin.js +20 -2
- package/lib/logging/runtime.js +1 -1
- package/lib/logging/truncateArgs.js +4 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +10 -6
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +2 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +10 -6
- package/lib/optimize/AggressiveMergingPlugin.js +8 -0
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -2
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -0
- package/lib/optimize/FlagIncludedChunksPlugin.js +11 -5
- package/lib/optimize/InnerGraph.js +5 -5
- package/lib/optimize/InnerGraphPlugin.js +2 -1
- package/lib/optimize/LimitChunkCountPlugin.js +29 -4
- package/lib/optimize/MangleExportsPlugin.js +1 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -0
- package/lib/optimize/ModuleConcatenationPlugin.js +59 -2
- package/lib/optimize/RealContentHashPlugin.js +80 -30
- package/lib/optimize/RemoveParentModulesPlugin.js +6 -0
- package/lib/optimize/RuntimeChunkPlugin.js +9 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +10 -1
- package/lib/optimize/SplitChunksPlugin.js +71 -31
- package/lib/performance/SizeLimitsPlugin.js +7 -4
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +3 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +6 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -2
- package/lib/rules/BasicEffectRulePlugin.js +4 -0
- package/lib/rules/BasicMatcherRulePlugin.js +5 -0
- package/lib/rules/RuleSetCompiler.js +3 -3
- package/lib/rules/UseEffectRulePlugin.js +6 -4
- package/lib/runtime/AsyncModuleRuntimeModule.js +8 -5
- package/lib/runtime/AutoPublicPathRuntimeModule.js +4 -2
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +4 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +4 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +5 -2
- package/lib/runtime/EnsureChunkRuntimeModule.js +15 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -10
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +4 -2
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +64 -48
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +1 -1
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +4 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +9 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -2
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +143 -1
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/ObjectMiddleware.js +9 -3
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +14 -5
- package/lib/sharing/ProvideSharedDependency.js +11 -0
- package/lib/sharing/ProvideSharedModule.js +4 -0
- package/lib/sharing/ProvideSharedPlugin.js +22 -21
- package/lib/sharing/ShareRuntimeModule.js +12 -5
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/sharing/utils.js +32 -5
- package/lib/util/AsyncQueue.js +4 -2
- package/lib/util/ParallelismFactorCalculator.js +10 -0
- package/lib/util/Semaphore.js +1 -1
- package/lib/util/StackedCacheMap.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +1 -1
- package/lib/util/createHash.js +30 -9
- package/lib/util/deprecation.js +10 -3
- package/lib/util/deterministicGrouping.js +50 -11
- package/lib/util/findGraphRoots.js +4 -2
- package/lib/util/memoize.js +3 -3
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +84 -21
- package/lib/util/semver.js +1 -0
- package/lib/util/smartGrouping.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +6 -2
- package/lib/wasm-async/AsyncWebAssemblyParser.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +14 -7
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +1 -0
- package/lib/wasm-sync/WebAssemblyParser.js +6 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +14 -4
- package/lib/webpack.js +11 -2
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -16
- package/module.d.ts +1 -0
- package/package.json +5 -4
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +52 -6
- package/schemas/plugins/css/CssGeneratorOptions.json +1 -1
- package/schemas/plugins/css/CssParserOptions.json +1 -1
- package/types.d.ts +606 -292
@@ -41,7 +41,7 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning");
|
|
41
41
|
/**
|
42
42
|
* @callback ChunkFilterFunction
|
43
43
|
* @param {Chunk} chunk
|
44
|
-
* @returns {boolean}
|
44
|
+
* @returns {boolean | undefined}
|
45
45
|
*/
|
46
46
|
|
47
47
|
/**
|
@@ -69,7 +69,7 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning");
|
|
69
69
|
* @property {number=} maxInitialRequests
|
70
70
|
* @property {(string | function(PathData, AssetInfo=): string)=} filename
|
71
71
|
* @property {string=} idHint
|
72
|
-
* @property {string} automaticNameDelimiter
|
72
|
+
* @property {string=} automaticNameDelimiter
|
73
73
|
* @property {boolean=} reuseExistingChunk
|
74
74
|
* @property {boolean=} usedExports
|
75
75
|
*/
|
@@ -254,12 +254,24 @@ const compareEntries = (a, b) => {
|
|
254
254
|
return compareModuleIterables(modulesA, modulesB);
|
255
255
|
};
|
256
256
|
|
257
|
+
/**
|
258
|
+
* @param {Chunk} chunk the chunk
|
259
|
+
* @returns {boolean} true, if the chunk is an entry chunk
|
260
|
+
*/
|
257
261
|
const INITIAL_CHUNK_FILTER = chunk => chunk.canBeInitial();
|
262
|
+
/**
|
263
|
+
* @param {Chunk} chunk the chunk
|
264
|
+
* @returns {boolean} true, if the chunk is an async chunk
|
265
|
+
*/
|
258
266
|
const ASYNC_CHUNK_FILTER = chunk => !chunk.canBeInitial();
|
267
|
+
/**
|
268
|
+
* @param {Chunk} chunk the chunk
|
269
|
+
* @returns {boolean} always true
|
270
|
+
*/
|
259
271
|
const ALL_CHUNK_FILTER = chunk => true;
|
260
272
|
|
261
273
|
/**
|
262
|
-
* @param {OptimizationSplitChunksSizes} value the sizes
|
274
|
+
* @param {OptimizationSplitChunksSizes | undefined} value the sizes
|
263
275
|
* @param {string[]} defaultSizeTypes the default size types
|
264
276
|
* @returns {SplitChunksSizes} normalized representation
|
265
277
|
*/
|
@@ -386,8 +398,8 @@ const totalSize = sizes => {
|
|
386
398
|
};
|
387
399
|
|
388
400
|
/**
|
389
|
-
* @param {false|string|Function} name the chunk name
|
390
|
-
* @returns {GetName} a function to get the name of the chunk
|
401
|
+
* @param {false|string|Function|undefined} name the chunk name
|
402
|
+
* @returns {GetName | undefined} a function to get the name of the chunk
|
391
403
|
*/
|
392
404
|
const normalizeName = name => {
|
393
405
|
if (typeof name === "string") {
|
@@ -412,6 +424,11 @@ const normalizeChunksFilter = chunks => {
|
|
412
424
|
if (chunks === "all") {
|
413
425
|
return ALL_CHUNK_FILTER;
|
414
426
|
}
|
427
|
+
if (chunks instanceof RegExp) {
|
428
|
+
return chunk => {
|
429
|
+
return chunk.name ? chunks.test(chunk.name) : false;
|
430
|
+
};
|
431
|
+
}
|
415
432
|
if (typeof chunks === "function") {
|
416
433
|
return chunks;
|
417
434
|
}
|
@@ -839,6 +856,10 @@ module.exports = class SplitChunksPlugin {
|
|
839
856
|
}
|
840
857
|
return key;
|
841
858
|
};
|
859
|
+
/**
|
860
|
+
* @param {bigint | Chunk} key key of the chunks
|
861
|
+
* @returns {string} stringified key
|
862
|
+
*/
|
842
863
|
const keyToString = key => {
|
843
864
|
if (typeof key === "bigint") return key.toString(16);
|
844
865
|
return chunkIndexMap.get(key).toString(16);
|
@@ -910,6 +931,10 @@ module.exports = class SplitChunksPlugin {
|
|
910
931
|
// group these set of chunks by count
|
911
932
|
// to allow to check less sets via isSubset
|
912
933
|
// (only smaller sets can be subset)
|
934
|
+
/**
|
935
|
+
* @param {IterableIterator<Set<Chunk>>} chunkSets set of sets of chunks
|
936
|
+
* @returns {Map<number, Array<Set<Chunk>>>} map of sets of chunks by count
|
937
|
+
*/
|
913
938
|
const groupChunkSetsByCount = chunkSets => {
|
914
939
|
/** @type {Map<number, Array<Set<Chunk>>>} */
|
915
940
|
const chunkSetsByCount = new Map();
|
@@ -1019,8 +1044,9 @@ module.exports = class SplitChunksPlugin {
|
|
1019
1044
|
entry = new WeakMap();
|
1020
1045
|
selectedChunksCacheByChunksSet.set(chunks, entry);
|
1021
1046
|
}
|
1022
|
-
|
1023
|
-
|
1047
|
+
let entry2 =
|
1048
|
+
/** @type {SelectedChunksResult} */
|
1049
|
+
(entry.get(chunkFilter));
|
1024
1050
|
if (entry2 === undefined) {
|
1025
1051
|
/** @type {Chunk[]} */
|
1026
1052
|
const selectedChunks = [];
|
@@ -1068,11 +1094,9 @@ module.exports = class SplitChunksPlugin {
|
|
1068
1094
|
// Break if minimum number of chunks is not reached
|
1069
1095
|
if (selectedChunks.length < cacheGroup.minChunks) return;
|
1070
1096
|
// Determine name for split chunk
|
1071
|
-
const name =
|
1072
|
-
|
1073
|
-
selectedChunks,
|
1074
|
-
cacheGroup.key
|
1075
|
-
);
|
1097
|
+
const name =
|
1098
|
+
/** @type {string} */
|
1099
|
+
(cacheGroup.getName(module, selectedChunks, cacheGroup.key));
|
1076
1100
|
// Check if the name is ok
|
1077
1101
|
const existingChunk = compilation.namedChunks.get(name);
|
1078
1102
|
if (existingChunk) {
|
@@ -1139,7 +1163,7 @@ module.exports = class SplitChunksPlugin {
|
|
1139
1163
|
? ` name:${name}`
|
1140
1164
|
: ` chunks:${keyToString(selectedChunksKey)}`);
|
1141
1165
|
// Add module to maps
|
1142
|
-
let info = chunksInfoMap.get(key);
|
1166
|
+
let info = /** @type {ChunksInfoItem} */ (chunksInfoMap.get(key));
|
1143
1167
|
if (info === undefined) {
|
1144
1168
|
chunksInfoMap.set(
|
1145
1169
|
key,
|
@@ -1204,7 +1228,9 @@ module.exports = class SplitChunksPlugin {
|
|
1204
1228
|
getExportsChunkSetsInGraph();
|
1205
1229
|
/** @type {Set<Set<Chunk> | Chunk>} */
|
1206
1230
|
const set = new Set();
|
1207
|
-
const groupedByUsedExports =
|
1231
|
+
const groupedByUsedExports =
|
1232
|
+
/** @type {Iterable<Chunk[]>} */
|
1233
|
+
(groupedByExportsMap.get(module));
|
1208
1234
|
for (const chunks of groupedByUsedExports) {
|
1209
1235
|
const chunksKey = getKey(chunks);
|
1210
1236
|
for (const comb of getExportsCombinations(chunksKey))
|
@@ -1228,7 +1254,10 @@ module.exports = class SplitChunksPlugin {
|
|
1228
1254
|
if (count < cacheGroup.minChunks) continue;
|
1229
1255
|
// Select chunks by configuration
|
1230
1256
|
const { chunks: selectedChunks, key: selectedChunksKey } =
|
1231
|
-
getSelectedChunks(
|
1257
|
+
getSelectedChunks(
|
1258
|
+
chunkCombination,
|
1259
|
+
/** @type {ChunkFilterFunction} */ (cacheGroup.chunksFilter)
|
1260
|
+
);
|
1232
1261
|
|
1233
1262
|
addModuleToChunksInfoMap(
|
1234
1263
|
cacheGroup,
|
@@ -1320,12 +1349,13 @@ module.exports = class SplitChunksPlugin {
|
|
1320
1349
|
}
|
1321
1350
|
}
|
1322
1351
|
|
1323
|
-
const item = bestEntry;
|
1324
|
-
chunksInfoMap.delete(bestEntryKey);
|
1352
|
+
const item = /** @type {ChunksInfoItem} */ (bestEntry);
|
1353
|
+
chunksInfoMap.delete(/** @type {string} */ (bestEntryKey));
|
1325
1354
|
|
1355
|
+
/** @type {Chunk["name"] | undefined} */
|
1326
1356
|
let chunkName = item.name;
|
1327
1357
|
// Variable for the new chunk (lazy created)
|
1328
|
-
/** @type {Chunk} */
|
1358
|
+
/** @type {Chunk | undefined} */
|
1329
1359
|
let newChunk;
|
1330
1360
|
// When no chunk name, check if we can reuse a chunk instead of creating a new one
|
1331
1361
|
let isExistingChunk = false;
|
@@ -1394,14 +1424,18 @@ module.exports = class SplitChunksPlugin {
|
|
1394
1424
|
) {
|
1395
1425
|
for (const chunk of usedChunks) {
|
1396
1426
|
// respect max requests
|
1397
|
-
const maxRequests =
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1427
|
+
const maxRequests = /** @type {number} */ (
|
1428
|
+
chunk.isOnlyInitial()
|
1429
|
+
? item.cacheGroup.maxInitialRequests
|
1430
|
+
: chunk.canBeInitial()
|
1431
|
+
? Math.min(
|
1432
|
+
/** @type {number} */
|
1433
|
+
(item.cacheGroup.maxInitialRequests),
|
1434
|
+
/** @type {number} */
|
1435
|
+
(item.cacheGroup.maxAsyncRequests)
|
1436
|
+
)
|
1437
|
+
: item.cacheGroup.maxAsyncRequests
|
1438
|
+
);
|
1405
1439
|
if (
|
1406
1440
|
isFinite(maxRequests) &&
|
1407
1441
|
getRequests(chunk) >= maxRequests
|
@@ -1421,8 +1455,12 @@ module.exports = class SplitChunksPlugin {
|
|
1421
1455
|
// Were some (invalid) chunks removed from usedChunks?
|
1422
1456
|
// => readd all modules to the queue, as things could have been changed
|
1423
1457
|
if (usedChunks.size < item.chunks.size) {
|
1424
|
-
if (isExistingChunk)
|
1425
|
-
|
1458
|
+
if (isExistingChunk)
|
1459
|
+
usedChunks.add(/** @type {Chunk} */ (newChunk));
|
1460
|
+
if (
|
1461
|
+
/** @type {number} */ (usedChunks.size) >=
|
1462
|
+
/** @type {number} */ (item.cacheGroup.minChunks)
|
1463
|
+
) {
|
1426
1464
|
const chunksArr = Array.from(usedChunks);
|
1427
1465
|
for (const module of item.modules) {
|
1428
1466
|
addModuleToChunksInfoMap(
|
@@ -1466,7 +1504,7 @@ module.exports = class SplitChunksPlugin {
|
|
1466
1504
|
) {
|
1467
1505
|
// queue this item again to be processed again
|
1468
1506
|
// without violating modules
|
1469
|
-
chunksInfoMap.set(bestEntryKey, item);
|
1507
|
+
chunksInfoMap.set(/** @type {string} */ (bestEntryKey), item);
|
1470
1508
|
}
|
1471
1509
|
continue;
|
1472
1510
|
}
|
@@ -1696,7 +1734,9 @@ module.exports = class SplitChunksPlugin {
|
|
1696
1734
|
hashFilename(name, outputOptions);
|
1697
1735
|
}
|
1698
1736
|
if (i !== results.length - 1) {
|
1699
|
-
const newPart = compilation.addChunk(
|
1737
|
+
const newPart = compilation.addChunk(
|
1738
|
+
/** @type {Chunk["name"]} */ (name)
|
1739
|
+
);
|
1700
1740
|
chunk.split(newPart);
|
1701
1741
|
newPart.chunkReason = chunk.chunkReason;
|
1702
1742
|
// Add all modules to the new chunk
|
@@ -1711,7 +1751,7 @@ module.exports = class SplitChunksPlugin {
|
|
1711
1751
|
}
|
1712
1752
|
} else {
|
1713
1753
|
// change the chunk to be a part
|
1714
|
-
chunk.name = name;
|
1754
|
+
chunk.name = /** @type {Chunk["name"]} */ (name);
|
1715
1755
|
}
|
1716
1756
|
}
|
1717
1757
|
}
|
@@ -95,7 +95,7 @@ module.exports = class SizeLimitsPlugin {
|
|
95
95
|
}
|
96
96
|
|
97
97
|
const size = info.size || source.size();
|
98
|
-
if (size > assetSizeLimit) {
|
98
|
+
if (size > /** @type {number} */ (assetSizeLimit)) {
|
99
99
|
assetsOverSizeLimit.push({
|
100
100
|
name,
|
101
101
|
size
|
@@ -114,7 +114,7 @@ module.exports = class SizeLimitsPlugin {
|
|
114
114
|
for (const [name, entry] of compilation.entrypoints) {
|
115
115
|
const size = getEntrypointSize(entry);
|
116
116
|
|
117
|
-
if (size > entrypointSizeLimit) {
|
117
|
+
if (size > /** @type {number} */ (entrypointSizeLimit)) {
|
118
118
|
entrypointsOverLimit.push({
|
119
119
|
name: name,
|
120
120
|
size: size,
|
@@ -131,14 +131,17 @@ module.exports = class SizeLimitsPlugin {
|
|
131
131
|
// if !1, then 2, if !2 return
|
132
132
|
if (assetsOverSizeLimit.length > 0) {
|
133
133
|
warnings.push(
|
134
|
-
new AssetsOverSizeLimitWarning(
|
134
|
+
new AssetsOverSizeLimitWarning(
|
135
|
+
assetsOverSizeLimit,
|
136
|
+
/** @type {number} */ (assetSizeLimit)
|
137
|
+
)
|
135
138
|
);
|
136
139
|
}
|
137
140
|
if (entrypointsOverLimit.length > 0) {
|
138
141
|
warnings.push(
|
139
142
|
new EntrypointsOverSizeLimitWarning(
|
140
143
|
entrypointsOverLimit,
|
141
|
-
entrypointSizeLimit
|
144
|
+
/** @type {number} */ (entrypointSizeLimit)
|
142
145
|
)
|
143
146
|
);
|
144
147
|
}
|
@@ -7,6 +7,7 @@
|
|
7
7
|
const RuntimeModule = require("../RuntimeModule");
|
8
8
|
const Template = require("../Template");
|
9
9
|
|
10
|
+
/** @typedef {import("../Compilation")} Compilation */
|
10
11
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
11
12
|
|
12
13
|
class ChunkPrefetchFunctionRuntimeModule extends RuntimeModule {
|
@@ -23,11 +24,12 @@ class ChunkPrefetchFunctionRuntimeModule extends RuntimeModule {
|
|
23
24
|
}
|
24
25
|
|
25
26
|
/**
|
26
|
-
* @returns {string} runtime code
|
27
|
+
* @returns {string | null} runtime code
|
27
28
|
*/
|
28
29
|
generate() {
|
29
30
|
const { runtimeFunction, runtimeHandlers } = this;
|
30
|
-
const
|
31
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
32
|
+
const { runtimeTemplate } = compilation;
|
31
33
|
return Template.asString([
|
32
34
|
`${runtimeHandlers} = {};`,
|
33
35
|
`${runtimeFunction} = ${runtimeTemplate.basicFunction("chunkId", [
|
@@ -11,6 +11,8 @@ const ChunkPrefetchStartupRuntimeModule = require("./ChunkPrefetchStartupRuntime
|
|
11
11
|
const ChunkPrefetchTriggerRuntimeModule = require("./ChunkPrefetchTriggerRuntimeModule");
|
12
12
|
const ChunkPreloadTriggerRuntimeModule = require("./ChunkPreloadTriggerRuntimeModule");
|
13
13
|
|
14
|
+
/** @typedef {import("../Chunk")} Chunk */
|
15
|
+
/** @typedef {import("../ChunkGroup").RawChunkGroupOptions} RawChunkGroupOptions */
|
14
16
|
/** @typedef {import("../Compiler")} Compiler */
|
15
17
|
|
16
18
|
class ChunkPrefetchPreloadPlugin {
|
@@ -43,7 +45,7 @@ class ChunkPrefetchPreloadPlugin {
|
|
43
45
|
compilation.hooks.additionalTreeRuntimeRequirements.tap(
|
44
46
|
"ChunkPrefetchPreloadPlugin",
|
45
47
|
(chunk, set, { chunkGraph }) => {
|
46
|
-
const chunkMap = chunk.getChildIdsByOrdersMap(chunkGraph
|
48
|
+
const chunkMap = chunk.getChildIdsByOrdersMap(chunkGraph);
|
47
49
|
|
48
50
|
if (chunkMap.prefetch) {
|
49
51
|
set.add(RuntimeGlobals.prefetchChunk);
|
@@ -9,6 +9,7 @@ const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
const Template = require("../Template");
|
10
10
|
|
11
11
|
/** @typedef {import("../Chunk")} Chunk */
|
12
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
13
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
13
14
|
|
14
15
|
class ChunkPrefetchStartupRuntimeModule extends RuntimeModule {
|
@@ -21,11 +22,13 @@ class ChunkPrefetchStartupRuntimeModule extends RuntimeModule {
|
|
21
22
|
}
|
22
23
|
|
23
24
|
/**
|
24
|
-
* @returns {string} runtime code
|
25
|
+
* @returns {string | null} runtime code
|
25
26
|
*/
|
26
27
|
generate() {
|
27
|
-
const { startupChunks
|
28
|
-
const
|
28
|
+
const { startupChunks } = this;
|
29
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
30
|
+
const chunk = /** @type {Chunk} */ (this.chunk);
|
31
|
+
const { runtimeTemplate } = compilation;
|
29
32
|
return Template.asString(
|
30
33
|
startupChunks.map(
|
31
34
|
({ onChunks, chunks }) =>
|
@@ -8,6 +8,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
9
9
|
const Template = require("../Template");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
11
12
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
12
13
|
|
13
14
|
class ChunkPrefetchTriggerRuntimeModule extends RuntimeModule {
|
@@ -20,11 +21,12 @@ class ChunkPrefetchTriggerRuntimeModule extends RuntimeModule {
|
|
20
21
|
}
|
21
22
|
|
22
23
|
/**
|
23
|
-
* @returns {string} runtime code
|
24
|
+
* @returns {string | null} runtime code
|
24
25
|
*/
|
25
26
|
generate() {
|
26
27
|
const { chunkMap } = this;
|
27
|
-
const
|
28
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
29
|
+
const { runtimeTemplate } = compilation;
|
28
30
|
const body = [
|
29
31
|
"var chunks = chunkToChildrenMap[chunkId];",
|
30
32
|
`Array.isArray(chunks) && chunks.map(${RuntimeGlobals.prefetchChunk});`
|
@@ -8,6 +8,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
9
9
|
const Template = require("../Template");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
11
12
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
12
13
|
|
13
14
|
class ChunkPreloadTriggerRuntimeModule extends RuntimeModule {
|
@@ -20,11 +21,12 @@ class ChunkPreloadTriggerRuntimeModule extends RuntimeModule {
|
|
20
21
|
}
|
21
22
|
|
22
23
|
/**
|
23
|
-
* @returns {string} runtime code
|
24
|
+
* @returns {string | null} runtime code
|
24
25
|
*/
|
25
26
|
generate() {
|
26
27
|
const { chunkMap } = this;
|
27
|
-
const
|
28
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
29
|
+
const { runtimeTemplate } = compilation;
|
28
30
|
const body = [
|
29
31
|
"var chunks = chunkToChildrenMap[chunkId];",
|
30
32
|
`Array.isArray(chunks) && chunks.map(${RuntimeGlobals.preloadChunk});`
|
@@ -8,6 +8,10 @@
|
|
8
8
|
/** @typedef {import("./RuleSetCompiler")} RuleSetCompiler */
|
9
9
|
|
10
10
|
class BasicEffectRulePlugin {
|
11
|
+
/**
|
12
|
+
* @param {string} ruleProperty the rule property
|
13
|
+
* @param {string=} effectType the effect type
|
14
|
+
*/
|
11
15
|
constructor(ruleProperty, effectType) {
|
12
16
|
this.ruleProperty = ruleProperty;
|
13
17
|
this.effectType = effectType || ruleProperty;
|
@@ -9,6 +9,11 @@
|
|
9
9
|
/** @typedef {import("./RuleSetCompiler").RuleCondition} RuleCondition */
|
10
10
|
|
11
11
|
class BasicMatcherRulePlugin {
|
12
|
+
/**
|
13
|
+
* @param {string} ruleProperty the rule property
|
14
|
+
* @param {string=} dataProperty the data property
|
15
|
+
* @param {boolean=} invert if true, inverts the condition
|
16
|
+
*/
|
12
17
|
constructor(ruleProperty, dataProperty, invert) {
|
13
18
|
this.ruleProperty = ruleProperty;
|
14
19
|
this.dataProperty = dataProperty || ruleProperty;
|
@@ -150,9 +150,9 @@ class RuleSetCompiler {
|
|
150
150
|
* @returns {CompiledRule[]} rules
|
151
151
|
*/
|
152
152
|
compileRules(path, rules, refs) {
|
153
|
-
return rules
|
154
|
-
|
155
|
-
|
153
|
+
return rules
|
154
|
+
.filter(Boolean)
|
155
|
+
.map((rule, i) => this.compileRule(`${path}[${i}]`, rule, refs));
|
156
156
|
}
|
157
157
|
|
158
158
|
/**
|
@@ -106,9 +106,11 @@ class UseEffectRulePlugin {
|
|
106
106
|
*/
|
107
107
|
const useToEffectsWithoutIdent = (path, items) => {
|
108
108
|
if (Array.isArray(items)) {
|
109
|
-
return items
|
110
|
-
|
111
|
-
|
109
|
+
return items
|
110
|
+
.filter(Boolean)
|
111
|
+
.map((item, idx) =>
|
112
|
+
useToEffectRaw(`${path}[${idx}]`, "[[missing ident]]", item)
|
113
|
+
);
|
112
114
|
}
|
113
115
|
return [useToEffectRaw(path, "[[missing ident]]", items)];
|
114
116
|
};
|
@@ -120,7 +122,7 @@ class UseEffectRulePlugin {
|
|
120
122
|
*/
|
121
123
|
const useToEffects = (path, items) => {
|
122
124
|
if (Array.isArray(items)) {
|
123
|
-
return items.map((item, idx) => {
|
125
|
+
return items.filter(Boolean).map((item, idx) => {
|
124
126
|
const subPath = `${path}[${idx}]`;
|
125
127
|
return useToEffect(subPath, subPath, item);
|
126
128
|
});
|
@@ -8,23 +8,26 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const Template = require("../Template");
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
|
+
|
11
13
|
class AsyncModuleRuntimeModule extends HelperRuntimeModule {
|
12
14
|
constructor() {
|
13
15
|
super("async module");
|
14
16
|
}
|
15
17
|
|
16
18
|
/**
|
17
|
-
* @returns {string} runtime code
|
19
|
+
* @returns {string | null} runtime code
|
18
20
|
*/
|
19
21
|
generate() {
|
20
|
-
const
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
23
|
+
const { runtimeTemplate } = compilation;
|
21
24
|
const fn = RuntimeGlobals.asyncModule;
|
22
25
|
return Template.asString([
|
23
26
|
'var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__";',
|
24
27
|
`var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "${RuntimeGlobals.exports}";`,
|
25
28
|
'var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";',
|
26
29
|
`var resolveQueue = ${runtimeTemplate.basicFunction("queue", [
|
27
|
-
"if(queue &&
|
30
|
+
"if(queue && queue.d < 1) {",
|
28
31
|
Template.indent([
|
29
32
|
"queue.d = 1;",
|
30
33
|
`queue.forEach(${runtimeTemplate.expressionFunction(
|
@@ -73,7 +76,7 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule {
|
|
73
76
|
)};`,
|
74
77
|
`${fn} = ${runtimeTemplate.basicFunction("module, body, hasAwait", [
|
75
78
|
"var queue;",
|
76
|
-
"hasAwait && ((queue = []).d = 1);",
|
79
|
+
"hasAwait && ((queue = []).d = -1);",
|
77
80
|
"var depQueues = new Set();",
|
78
81
|
"var exports = module.exports;",
|
79
82
|
"var currentDeps;",
|
@@ -121,7 +124,7 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule {
|
|
121
124
|
"(err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)",
|
122
125
|
"err"
|
123
126
|
)});`,
|
124
|
-
"queue && (queue.d = 0);"
|
127
|
+
"queue && queue.d < 0 && (queue.d = 0);"
|
125
128
|
])};`
|
126
129
|
]);
|
127
130
|
}
|
@@ -10,16 +10,18 @@ const Template = require("../Template");
|
|
10
10
|
const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
|
11
11
|
const { getUndoPath } = require("../util/identifier");
|
12
12
|
|
13
|
+
/** @typedef {import("../Compilation")} Compilation */
|
14
|
+
|
13
15
|
class AutoPublicPathRuntimeModule extends RuntimeModule {
|
14
16
|
constructor() {
|
15
17
|
super("publicPath", RuntimeModule.STAGE_BASIC);
|
16
18
|
}
|
17
19
|
|
18
20
|
/**
|
19
|
-
* @returns {string} runtime code
|
21
|
+
* @returns {string | null} runtime code
|
20
22
|
*/
|
21
23
|
generate() {
|
22
|
-
const
|
24
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
23
25
|
const { scriptType, importMetaName, path } = compilation.outputOptions;
|
24
26
|
const chunkName = compilation.getPath(
|
25
27
|
JavascriptModulesPlugin.getChunkFilenameTemplate(
|
@@ -9,6 +9,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
10
10
|
|
11
11
|
/** @typedef {import("../../declarations/WebpackOptions").EntryDescriptionNormalized} EntryDescriptionNormalized */
|
12
|
+
/** @typedef {import("../Chunk")} Chunk */
|
12
13
|
|
13
14
|
class BaseUriRuntimeModule extends RuntimeModule {
|
14
15
|
constructor() {
|
@@ -16,11 +17,10 @@ class BaseUriRuntimeModule extends RuntimeModule {
|
|
16
17
|
}
|
17
18
|
|
18
19
|
/**
|
19
|
-
* @returns {string} runtime code
|
20
|
+
* @returns {string | null} runtime code
|
20
21
|
*/
|
21
22
|
generate() {
|
22
|
-
const
|
23
|
-
|
23
|
+
const chunk = /** @type {Chunk} */ (this.chunk);
|
24
24
|
const options =
|
25
25
|
/** @type {EntryDescriptionNormalized} */
|
26
26
|
(chunk.getEntryOptions());
|
@@ -8,16 +8,19 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const Template = require("../Template");
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
|
+
|
11
13
|
class CompatGetDefaultExportRuntimeModule extends HelperRuntimeModule {
|
12
14
|
constructor() {
|
13
15
|
super("compat get default export");
|
14
16
|
}
|
15
17
|
|
16
18
|
/**
|
17
|
-
* @returns {string} runtime code
|
19
|
+
* @returns {string | null} runtime code
|
18
20
|
*/
|
19
21
|
generate() {
|
20
|
-
const
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
23
|
+
const { runtimeTemplate } = compilation;
|
21
24
|
const fn = RuntimeGlobals.compatGetDefaultExport;
|
22
25
|
return Template.asString([
|
23
26
|
"// getDefaultExport function for compatibility with non-harmony modules",
|
@@ -7,6 +7,9 @@
|
|
7
7
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
9
9
|
|
10
|
+
/** @typedef {import("../Chunk")} Chunk */
|
11
|
+
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
12
|
+
/** @typedef {import("../Compilation")} Compilation */
|
10
13
|
/** @typedef {import("../MainTemplate")} MainTemplate */
|
11
14
|
|
12
15
|
class CompatRuntimeModule extends RuntimeModule {
|
@@ -16,10 +19,12 @@ class CompatRuntimeModule extends RuntimeModule {
|
|
16
19
|
}
|
17
20
|
|
18
21
|
/**
|
19
|
-
* @returns {string} runtime code
|
22
|
+
* @returns {string | null} runtime code
|
20
23
|
*/
|
21
24
|
generate() {
|
22
|
-
const
|
25
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
26
|
+
const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph);
|
27
|
+
const chunk = /** @type {Chunk} */ (this.chunk);
|
23
28
|
const {
|
24
29
|
runtimeTemplate,
|
25
30
|
mainTemplate,
|
@@ -8,16 +8,19 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const Template = require("../Template");
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
|
+
|
11
13
|
class CreateFakeNamespaceObjectRuntimeModule extends HelperRuntimeModule {
|
12
14
|
constructor() {
|
13
15
|
super("create fake namespace object");
|
14
16
|
}
|
15
17
|
|
16
18
|
/**
|
17
|
-
* @returns {string} runtime code
|
19
|
+
* @returns {string | null} runtime code
|
18
20
|
*/
|
19
21
|
generate() {
|
20
|
-
const
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
23
|
+
const { runtimeTemplate } = compilation;
|
21
24
|
const fn = RuntimeGlobals.createFakeNamespaceObject;
|
22
25
|
return Template.asString([
|
23
26
|
`var getProto = Object.getPrototypeOf ? ${runtimeTemplate.returningFunction(
|
@@ -8,16 +8,18 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const Template = require("../Template");
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
|
+
|
11
13
|
class CreateScriptRuntimeModule extends HelperRuntimeModule {
|
12
14
|
constructor() {
|
13
15
|
super("trusted types script");
|
14
16
|
}
|
15
17
|
|
16
18
|
/**
|
17
|
-
* @returns {string} runtime code
|
19
|
+
* @returns {string | null} runtime code
|
18
20
|
*/
|
19
21
|
generate() {
|
20
|
-
const
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
21
23
|
const { runtimeTemplate, outputOptions } = compilation;
|
22
24
|
const { trustedTypes } = outputOptions;
|
23
25
|
const fn = RuntimeGlobals.createScript;
|
@@ -8,16 +8,18 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
8
8
|
const Template = require("../Template");
|
9
9
|
const HelperRuntimeModule = require("./HelperRuntimeModule");
|
10
10
|
|
11
|
+
/** @typedef {import("../Compilation")} Compilation */
|
12
|
+
|
11
13
|
class CreateScriptUrlRuntimeModule extends HelperRuntimeModule {
|
12
14
|
constructor() {
|
13
15
|
super("trusted types script url");
|
14
16
|
}
|
15
17
|
|
16
18
|
/**
|
17
|
-
* @returns {string} runtime code
|
19
|
+
* @returns {string | null} runtime code
|
18
20
|
*/
|
19
21
|
generate() {
|
20
|
-
const
|
22
|
+
const compilation = /** @type {Compilation} */ (this.compilation);
|
21
23
|
const { runtimeTemplate, outputOptions } = compilation;
|
22
24
|
const { trustedTypes } = outputOptions;
|
23
25
|
const fn = RuntimeGlobals.createScriptUrl;
|