webpack 5.107.2 → 5.108.0
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/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +8 -4
- package/lib/CacheFacade.js +7 -0
- package/lib/Chunk.js +4 -0
- package/lib/ChunkGraph.js +30 -9
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +2 -1
- package/lib/Compilation.js +396 -65
- package/lib/Compiler.js +25 -11
- package/lib/ConcatenationScope.js +10 -3
- package/lib/ContextExclusionPlugin.js +1 -0
- package/lib/ContextModule.js +92 -47
- package/lib/ContextReplacementPlugin.js +4 -0
- package/lib/DefinePlugin.js +89 -15
- package/lib/Dependency.js +111 -7
- package/lib/EntryOptionPlugin.js +39 -2
- package/lib/EntryPlugin.js +2 -0
- package/lib/ExportsInfo.js +314 -73
- package/lib/ExternalModule.js +82 -34
- package/lib/ExternalModuleFactoryPlugin.js +1 -0
- package/lib/ExternalsPlugin.js +1 -0
- package/lib/FileSystemInfo.js +173 -23
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -5
- package/lib/FlagDependencyExportsPlugin.js +23 -0
- package/lib/FlagDependencyUsagePlugin.js +87 -5
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -0
- package/lib/Generator.js +8 -0
- package/lib/HotModuleReplacementPlugin.js +65 -28
- package/lib/IgnorePlugin.js +1 -0
- package/lib/InitFragment.js +5 -0
- package/lib/JavascriptMetaInfoPlugin.js +7 -5
- package/lib/LazyBarrel.js +361 -0
- package/lib/LoaderTargetPlugin.js +1 -0
- package/lib/Module.js +21 -42
- package/lib/ModuleGraph.js +3 -2
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleTemplate.js +2 -0
- package/lib/MultiCompiler.js +2 -0
- package/lib/MultiStats.js +1 -0
- package/lib/MultiWatching.js +2 -0
- package/lib/NodeStuffPlugin.js +22 -17
- package/lib/NormalModule.js +142 -80
- package/lib/NormalModuleReplacementPlugin.js +2 -0
- package/lib/PrefetchPlugin.js +2 -0
- package/lib/ProgressPlugin.js +8 -0
- package/lib/ProvidePlugin.js +1 -0
- package/lib/RawModule.js +20 -16
- package/lib/RecordIdsPlugin.js +1 -0
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimePlugin.js +58 -26
- package/lib/RuntimeTemplate.js +278 -21
- package/lib/SelfModuleFactory.js +1 -0
- package/lib/SourceMapDevToolPlugin.js +3 -5
- package/lib/Stats.js +1 -0
- package/lib/Template.js +8 -2
- package/lib/TemplatedPathPlugin.js +473 -131
- package/lib/WarnCaseSensitiveModulesPlugin.js +1 -0
- package/lib/WarnDeprecatedOptionPlugin.js +4 -0
- package/lib/WarnNoModeSetPlugin.js +1 -0
- package/lib/WatchIgnorePlugin.js +1 -0
- package/lib/Watching.js +9 -0
- package/lib/WebpackOptionsApply.js +50 -5
- package/lib/asset/AssetBytesGenerator.js +11 -3
- package/lib/asset/AssetGenerator.js +47 -22
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +14 -14
- package/lib/asset/AssetParser.js +2 -2
- package/lib/asset/AssetSourceGenerator.js +8 -0
- package/lib/asset/RawDataUrlModule.js +12 -13
- package/lib/buildChunkGraph.js +64 -7
- package/lib/bun/BunTargetPlugin.js +48 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -0
- package/lib/cache/AddManagedPathsPlugin.js +3 -0
- package/lib/cache/IdleFileCachePlugin.js +4 -0
- package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
- package/lib/cache/PackFileCacheStrategy.js +1 -0
- package/lib/cache/ResolverCachePlugin.js +2 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +109 -19
- package/lib/config/browserslistTargetHandler.js +99 -0
- package/lib/config/defaults.js +147 -7
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +5 -0
- package/lib/config/target.js +181 -2
- package/lib/container/ContainerEntryModule.js +15 -14
- package/lib/container/ContainerExposedDependency.js +2 -2
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +5 -7
- package/lib/container/FallbackModule.js +10 -9
- package/lib/container/RemoteModule.js +20 -10
- package/lib/container/RemoteRuntimeModule.js +14 -12
- package/lib/css/CssGenerator.js +353 -327
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -8
- package/lib/css/CssLoadingRuntimeModule.js +118 -47
- package/lib/css/CssModule.js +52 -23
- package/lib/css/CssModulesPlugin.js +107 -124
- package/lib/css/CssParser.js +2759 -2205
- package/lib/css/syntax.js +2859 -0
- package/lib/debug/ProfilingPlugin.js +2 -0
- package/lib/deno/DenoTargetPlugin.js +47 -0
- package/lib/dependencies/AMDDefineDependency.js +22 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +1 -0
- package/lib/dependencies/AMDRequireArrayDependency.js +7 -11
- package/lib/dependencies/AMDRequireContextDependency.js +7 -11
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/AMDRequireDependency.js +24 -20
- package/lib/dependencies/CachedConstDependency.js +3 -0
- package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +79 -31
- package/lib/dependencies/CommonJsExportsDependency.js +21 -16
- package/lib/dependencies/CommonJsExportsParserPlugin.js +230 -7
- package/lib/dependencies/CommonJsFullRequireDependency.js +27 -19
- package/lib/dependencies/CommonJsImportsParserPlugin.js +51 -16
- package/lib/dependencies/CommonJsPlugin.js +1 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +10 -13
- package/lib/dependencies/CommonJsRequireDependency.js +42 -11
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -14
- package/lib/dependencies/ConstDependency.js +16 -11
- package/lib/dependencies/ContextDependency.js +4 -0
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -1
- package/lib/dependencies/ContextElementDependency.js +23 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +1 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +5 -7
- package/lib/dependencies/CriticalDependencyWarning.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +512 -574
- package/lib/dependencies/CssIcssImportDependency.js +9 -9
- package/lib/dependencies/CssIcssSymbolDependency.js +22 -15
- package/lib/dependencies/CssImportDependency.js +25 -1
- package/lib/dependencies/CssUrlDependency.js +23 -14
- package/lib/dependencies/DllEntryDependency.js +9 -13
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +12 -12
- package/lib/dependencies/ExternalModuleDependency.js +8 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +7 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +13 -10
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -11
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +47 -22
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +28 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +46 -22
- package/lib/dependencies/HarmonyExportExpressionDependency.js +107 -30
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +109 -31
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -15
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +83 -18
- package/lib/dependencies/HarmonyExports.js +4 -1
- package/lib/dependencies/HarmonyImportDependency.js +24 -0
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +110 -74
- package/lib/dependencies/HarmonyImportGuard.js +254 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +18 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +118 -14
- package/lib/dependencies/HarmonyLinkingError.js +1 -0
- package/lib/dependencies/HarmonyModulesPlugin.js +1 -0
- package/lib/dependencies/{HtmlScriptSrcDependency.js → HtmlEntryDependency.js} +261 -109
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +17 -13
- package/lib/dependencies/HtmlInlineStyleDependency.js +45 -11
- package/lib/dependencies/ImportContextDependency.js +5 -9
- package/lib/dependencies/ImportDependency.js +44 -2
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +74 -30
- package/lib/dependencies/ImportParserPlugin.js +19 -0
- package/lib/dependencies/ImportWeakDependency.js +1 -0
- package/lib/dependencies/JsonExportsDependency.js +9 -9
- package/lib/dependencies/LoaderImportDependency.js +1 -0
- package/lib/dependencies/LocalModule.js +11 -12
- package/lib/dependencies/LocalModuleDependency.js +11 -13
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -9
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +15 -11
- package/lib/dependencies/ProvidedDependency.js +31 -27
- package/lib/dependencies/PureExpressionDependency.js +7 -9
- package/lib/dependencies/RequireEnsureDependency.js +12 -13
- package/lib/dependencies/RequireHeaderDependency.js +3 -4
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
- package/lib/dependencies/RequireResolveContextDependency.js +7 -11
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +3 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +6 -7
- package/lib/dependencies/StaticExportsDependency.js +10 -10
- package/lib/dependencies/SystemPlugin.js +2 -0
- package/lib/dependencies/URLContextDependency.js +5 -7
- package/lib/dependencies/URLDependency.js +14 -16
- package/lib/dependencies/UnsupportedDependency.js +8 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +11 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +14 -16
- package/lib/dependencies/WebpackIsIncludedDependency.js +1 -0
- package/lib/dependencies/WorkerDependency.js +19 -8
- package/lib/dependencies/WorkerPlugin.js +22 -6
- package/lib/dependencies/processExportInfo.js +13 -11
- package/lib/dll/DelegatedModule.js +29 -15
- package/lib/dll/DelegatedModuleFactoryPlugin.js +1 -0
- package/lib/dll/DelegatedPlugin.js +1 -0
- package/lib/dll/DllEntryPlugin.js +3 -0
- package/lib/dll/DllModule.js +3 -2
- package/lib/dll/DllPlugin.js +16 -0
- package/lib/dll/DllReferencePlugin.js +3 -0
- package/lib/dll/LibManifestPlugin.js +1 -0
- package/lib/electron/ElectronTargetPlugin.js +22 -4
- package/lib/errors/ConcurrentCompilationError.js +1 -0
- package/lib/errors/HookWebpackError.js +11 -13
- package/lib/errors/IgnoreErrorModuleFactory.js +1 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +2 -0
- package/lib/errors/JSONParseError.js +9 -8
- package/lib/errors/ModuleBuildError.js +16 -13
- package/lib/errors/ModuleDependencyError.js +8 -1
- package/lib/errors/ModuleDependencyWarning.js +8 -1
- package/lib/errors/ModuleError.js +5 -11
- package/lib/errors/ModuleHashingError.js +4 -0
- package/lib/errors/ModuleNotFoundError.js +3 -0
- package/lib/errors/ModuleParseError.js +5 -11
- package/lib/errors/ModuleRestoreError.js +2 -0
- package/lib/errors/ModuleStoreError.js +3 -0
- package/lib/errors/ModuleWarning.js +7 -11
- package/lib/errors/NodeStuffInWebError.js +1 -0
- package/lib/errors/NonErrorEmittedError.js +2 -0
- package/lib/errors/UnhandledSchemeError.js +1 -0
- package/lib/esm/ModuleChunkLoadingPlugin.js +0 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +28 -23
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +7 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/LazyCompilationPlugin.js +30 -6
- package/lib/html/HtmlGenerator.js +217 -23
- package/lib/html/HtmlModule.js +40 -0
- package/lib/html/HtmlModulesPlugin.js +219 -55
- package/lib/html/HtmlParser.js +1108 -1099
- package/lib/html/{walkHtmlTokens.js → syntax.js} +4701 -212
- package/lib/ids/IdHelpers.js +4 -2
- package/lib/index.js +19 -0
- package/lib/javascript/BasicEvaluatedExpression.js +1 -0
- package/lib/javascript/EnableChunkLoadingPlugin.js +1 -0
- package/lib/javascript/JavascriptGenerator.js +6 -2
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +257 -102
- package/lib/javascript/JavascriptParser.js +285 -158
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +7 -0
- package/lib/json/JsonParser.js +4 -2
- package/lib/library/AssignLibraryPlugin.js +5 -3
- package/lib/library/ExportPropertyLibraryPlugin.js +1 -0
- package/lib/library/FalseIIFEUmdWarning.js +1 -0
- package/lib/library/ModuleLibraryPlugin.js +24 -5
- package/lib/library/SystemLibraryPlugin.js +3 -3
- package/lib/node/NodeTargetPlugin.js +1 -0
- package/lib/node/NodeWatchFileSystem.js +1 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +10 -9
- package/lib/node/RequireChunkLoadingRuntimeModule.js +18 -16
- package/lib/optimize/ConcatenatedModule.js +395 -77
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +372 -275
- package/lib/optimize/InnerGraphPlugin.js +196 -99
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -25
- package/lib/optimize/RealContentHashPlugin.js +14 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +234 -64
- package/lib/runtime/AsyncModuleRuntimeModule.js +32 -30
- package/lib/runtime/AutoPublicPathRuntimeModule.js +11 -5
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -1
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +6 -4
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +33 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +82 -3
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +18 -13
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +39 -26
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/RelativeUrlRuntimeModule.js +3 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +4 -3
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/HttpUriPlugin.js +3 -2
- package/lib/serialization/AggregateErrorSerializer.js +7 -6
- package/lib/serialization/ArraySerializer.js +4 -8
- package/lib/serialization/BinaryMiddleware.js +538 -468
- package/lib/serialization/DateObjectSerializer.js +2 -2
- package/lib/serialization/ErrorObjectSerializer.js +7 -6
- package/lib/serialization/MapObjectSerializer.js +5 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +7 -9
- package/lib/serialization/ObjectMiddleware.js +50 -13
- package/lib/serialization/PlainObjectSerializer.js +9 -8
- package/lib/serialization/RegExpObjectSerializer.js +2 -2
- package/lib/serialization/Serializer.js +1 -0
- package/lib/serialization/SetObjectSerializer.js +4 -8
- package/lib/sharing/ConsumeSharedModule.js +6 -7
- package/lib/sharing/ConsumeSharedPlugin.js +1 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +46 -41
- package/lib/sharing/ProvideSharedDependency.js +30 -15
- package/lib/sharing/ProvideSharedModule.js +30 -11
- package/lib/sharing/ProvideSharedPlugin.js +4 -2
- package/lib/sharing/SharePlugin.js +3 -0
- package/lib/sharing/ShareRuntimeModule.js +18 -16
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +1 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +4 -6
- package/lib/stats/DefaultStatsPrinterPlugin.js +14 -14
- package/lib/stats/StatsFactory.js +11 -9
- package/lib/stats/StatsPrinter.js +9 -2
- package/lib/url/URLParserPlugin.js +5 -2
- package/lib/util/AsyncQueue.js +10 -0
- package/lib/util/LazyBucketSortedSet.js +5 -0
- package/lib/util/LazySet.js +6 -4
- package/lib/util/LocConverter.js +11 -1
- package/lib/util/Semaphore.js +1 -0
- package/lib/util/SourceProcessor.js +106 -0
- package/lib/util/TupleSet.js +1 -0
- package/lib/util/WeakTupleMap.js +27 -1
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/comparators.js +2 -2
- package/lib/util/concatenate.js +31 -7
- package/lib/util/createHash.js +0 -1
- package/lib/util/deterministicGrouping.js +19 -12
- package/lib/util/extractSourceMap.js +1 -1
- package/lib/util/findGraphRoots.js +2 -0
- package/lib/util/fs.js +10 -5
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +24 -15
- package/lib/util/identifier.js +7 -0
- package/lib/util/internalSerializables.js +11 -2
- package/lib/util/magicComment.js +42 -0
- package/lib/util/makeSerializable.js +1 -0
- package/lib/util/nonNumericOnlyHash.js +30 -1
- package/lib/util/property.js +7 -1
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +4 -4
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +1 -96
- package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +1 -1
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +6 -3
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +1 -0
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -0
- package/lib/wasm-sync/WebAssemblyParser.js +7 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +45 -39
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +11 -10
- package/package.json +35 -27
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +212 -3
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -1
- package/schemas/plugins/HtmlParserOptions.check.d.ts +7 -0
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +1456 -290
- package/lib/css/walkCssTokens.js +0 -2020
- package/lib/util/AppendOnlyStackedSet.js +0 -93
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
/*
|
|
3
2
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
4
3
|
Author Tobias Koppers @sokra
|
|
@@ -6,29 +5,127 @@
|
|
|
6
5
|
|
|
7
6
|
"use strict";
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
/** @typedef {string | number} ModuleId */
|
|
9
|
+
/** @typedef {Record<string, unknown>} HotData */
|
|
10
|
+
/** @typedef {(data: HotData) => void} DisposeHandler */
|
|
11
|
+
/** @typedef {(outdatedDependencies: ModuleId[]) => void} AcceptCallback */
|
|
12
|
+
/** @typedef {(err: unknown, context: { moduleId: ModuleId, dependencyId: ModuleId }) => void} AcceptErrorHandler */
|
|
13
|
+
/** @typedef {{ type: string, moduleId: ModuleId, dependencyId?: ModuleId, error: unknown, originalError?: unknown }} HotErrorEvent */
|
|
14
|
+
/** @typedef {(reportError: (err: unknown) => void) => Promise<ModuleId[]>} ApplyFn */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @typedef {object} ApplyOptions
|
|
18
|
+
* @property {boolean=} ignoreUnaccepted ignore unaccepted modules
|
|
19
|
+
* @property {boolean=} ignoreDeclined ignore declined modules
|
|
20
|
+
* @property {boolean=} ignoreErrored ignore errors thrown while applying
|
|
21
|
+
* @property {((event: ModuleEffect) => void)=} onDeclined called for declined modules
|
|
22
|
+
* @property {((event: ModuleEffect) => void)=} onUnaccepted called for unaccepted modules
|
|
23
|
+
* @property {((event: ModuleEffect) => void)=} onAccepted called for accepted modules
|
|
24
|
+
* @property {((event: ModuleEffect) => void)=} onDisposed called for disposed modules
|
|
25
|
+
* @property {((event: HotErrorEvent) => void)=} onErrored called on apply errors
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {object} ApplyResult
|
|
30
|
+
* @property {Error=} error fatal error that aborts the update
|
|
31
|
+
* @property {(() => void)=} dispose dispose phase of the update
|
|
32
|
+
* @property {ApplyFn=} apply apply phase of the update
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/** @typedef {(options: ApplyOptions) => ApplyResult} ApplyHandler */
|
|
36
|
+
/** @typedef {(moduleId: ModuleId, applyHandlers: ApplyHandler[]) => void} InvalidateModuleHandler */
|
|
37
|
+
/** @typedef {(chunkIds: ModuleId[], removedChunks: ModuleId[], removedModules: ModuleId[], promises: Promise<unknown>[], applyHandlers: ApplyHandler[], updatedModulesList: ModuleId[], css: ModuleId[] | undefined, forceLoadChunks: ModuleId[] | undefined) => void} DownloadUpdateHandler */
|
|
38
|
+
/** @typedef {(chunkId: ModuleId, promises: Promise<unknown>[]) => void} EnsureChunkHandler */
|
|
39
|
+
/** @typedef {(webpackRequire: (id: ModuleId) => unknown) => void} RuntimeModuleFn */
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @typedef {object} Hot
|
|
43
|
+
* @property {Record<ModuleId, AcceptCallback>} _acceptedDependencies accept callbacks by dependency id
|
|
44
|
+
* @property {Record<ModuleId, AcceptErrorHandler | undefined>} _acceptedErrorHandlers error handlers by dependency id
|
|
45
|
+
* @property {Record<ModuleId, boolean>} _declinedDependencies declined dependency ids
|
|
46
|
+
* @property {boolean | EXPECTED_FUNCTION} _selfAccepted true or the self-accept error handler
|
|
47
|
+
* @property {boolean} _selfDeclined module declined itself
|
|
48
|
+
* @property {boolean} _selfInvalidated module invalidated itself
|
|
49
|
+
* @property {DisposeHandler[]} _disposeHandlers registered dispose handlers
|
|
50
|
+
* @property {boolean} _main module is the entry of the update
|
|
51
|
+
* @property {() => void} _requireSelf re-require the module on apply
|
|
52
|
+
* @property {boolean} active module is not disposed
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @typedef {object} HotModule
|
|
57
|
+
* @property {ModuleId} id module id
|
|
58
|
+
* @property {Hot} hot hot API of the module
|
|
59
|
+
* @property {ModuleId[]} parents ids of modules requiring this module
|
|
60
|
+
* @property {ModuleId[]} children ids of modules required by this module
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @typedef {object} ModuleEffect
|
|
65
|
+
* @property {string} type effect type
|
|
66
|
+
* @property {ModuleId} moduleId affected module id
|
|
67
|
+
* @property {ModuleId[]=} chain update propagation chain
|
|
68
|
+
* @property {ModuleId=} parentId declining parent id
|
|
69
|
+
* @property {ModuleId[]=} outdatedModules outdated module ids
|
|
70
|
+
* @property {Record<ModuleId, ModuleId[]>=} outdatedDependencies outdated dependencies by module id
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/** @typedef {{ chain: ModuleId[], id: ModuleId }} QueueItem */
|
|
74
|
+
/** @typedef {{ module: ModuleId, require: (id?: ModuleId) => void, errorHandler: boolean | EXPECTED_FUNCTION }} SelfAcceptedModule */
|
|
75
|
+
|
|
76
|
+
// Globals injected by code generation; declared here only to type the template.
|
|
77
|
+
/* eslint-disable no-unassigned-vars */
|
|
78
|
+
/** @type {Record<ModuleId, unknown>} */
|
|
79
|
+
var $installedChunks$;
|
|
80
|
+
/** @type {(chunkId: ModuleId, updatedModulesList?: ModuleId[]) => Promise<unknown>} */
|
|
81
|
+
var $loadUpdateChunk$;
|
|
82
|
+
/** @type {Record<ModuleId, HotModule>} */
|
|
83
|
+
var $moduleCache$;
|
|
84
|
+
/** @type {Record<ModuleId, EXPECTED_FUNCTION>} */
|
|
85
|
+
var $moduleFactories$;
|
|
86
|
+
/** @type {Record<string, EnsureChunkHandler>} */
|
|
87
|
+
var $ensureChunkHandlers$;
|
|
88
|
+
/** @type {(obj: object, key: ModuleId) => boolean} */
|
|
89
|
+
var $hasOwnProperty$;
|
|
90
|
+
/** @type {Record<ModuleId, HotData>} */
|
|
91
|
+
var $hmrModuleData$;
|
|
92
|
+
/** @type {Record<string, DownloadUpdateHandler>} */
|
|
93
|
+
var $hmrDownloadUpdateHandlers$;
|
|
94
|
+
/** @type {Record<string, InvalidateModuleHandler>} */
|
|
95
|
+
var $hmrInvalidateModuleHandlers$;
|
|
96
|
+
/** @type {(id: ModuleId) => unknown} */
|
|
97
|
+
var __webpack_require__;
|
|
98
|
+
/* eslint-enable no-unassigned-vars */
|
|
19
99
|
|
|
20
100
|
module.exports = function () {
|
|
101
|
+
/** @type {Record<ModuleId, boolean>} */
|
|
21
102
|
var currentUpdateChunks;
|
|
103
|
+
/** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */
|
|
22
104
|
var currentUpdate;
|
|
105
|
+
/** @type {ModuleId[]} */
|
|
23
106
|
var currentUpdateRemovedChunks;
|
|
107
|
+
/** @type {RuntimeModuleFn[]} */
|
|
24
108
|
var currentUpdateRuntime;
|
|
109
|
+
/**
|
|
110
|
+
* @param {ApplyOptions} options apply options
|
|
111
|
+
* @returns {ApplyResult} dispose/apply handlers or a fatal error
|
|
112
|
+
*/
|
|
25
113
|
function applyHandler(options) {
|
|
26
114
|
if ($ensureChunkHandlers$) delete $ensureChunkHandlers$.$key$Hmr;
|
|
27
|
-
currentUpdateChunks =
|
|
115
|
+
currentUpdateChunks = /** @type {Record<ModuleId, boolean>} */ (
|
|
116
|
+
/** @type {unknown} */ (undefined)
|
|
117
|
+
);
|
|
118
|
+
/**
|
|
119
|
+
* @param {ModuleId} updateModuleId updated module id
|
|
120
|
+
* @returns {ModuleEffect} effect of updating the module
|
|
121
|
+
*/
|
|
28
122
|
function getAffectedModuleEffects(updateModuleId) {
|
|
123
|
+
/** @type {ModuleId[]} */
|
|
29
124
|
var outdatedModules = [updateModuleId];
|
|
125
|
+
/** @type {Record<ModuleId, ModuleId[]>} */
|
|
30
126
|
var outdatedDependencies = {};
|
|
31
127
|
|
|
128
|
+
/** @type {QueueItem[]} */
|
|
32
129
|
var queue = outdatedModules.map(function (id) {
|
|
33
130
|
return {
|
|
34
131
|
chain: [id],
|
|
@@ -36,7 +133,7 @@ module.exports = function () {
|
|
|
36
133
|
};
|
|
37
134
|
});
|
|
38
135
|
while (queue.length > 0) {
|
|
39
|
-
var queueItem = queue.pop();
|
|
136
|
+
var queueItem = /** @type {QueueItem} */ (queue.pop());
|
|
40
137
|
var moduleId = queueItem.id;
|
|
41
138
|
var chain = queueItem.chain;
|
|
42
139
|
var module = $moduleCache$[moduleId];
|
|
@@ -95,6 +192,11 @@ module.exports = function () {
|
|
|
95
192
|
};
|
|
96
193
|
}
|
|
97
194
|
|
|
195
|
+
/**
|
|
196
|
+
* @param {ModuleId[]} a target set
|
|
197
|
+
* @param {ModuleId[]} b items to add
|
|
198
|
+
* @returns {void}
|
|
199
|
+
*/
|
|
98
200
|
function addAllToSet(a, b) {
|
|
99
201
|
for (var i = 0; i < b.length; i++) {
|
|
100
202
|
var item = b[i];
|
|
@@ -104,10 +206,17 @@ module.exports = function () {
|
|
|
104
206
|
|
|
105
207
|
// at begin all updates modules are outdated
|
|
106
208
|
// the "outdated" status can propagate to parents if they don't accept the children
|
|
209
|
+
/** @type {Record<ModuleId, ModuleId[]>} */
|
|
107
210
|
var outdatedDependencies = {};
|
|
211
|
+
/** @type {ModuleId[]} */
|
|
108
212
|
var outdatedModules = [];
|
|
213
|
+
/** @type {Record<ModuleId, EXPECTED_FUNCTION>} */
|
|
109
214
|
var appliedUpdate = {};
|
|
110
215
|
|
|
216
|
+
/**
|
|
217
|
+
* @param {HotModule} module disposed module
|
|
218
|
+
* @returns {void}
|
|
219
|
+
*/
|
|
111
220
|
var warnUnexpectedRequire = function warnUnexpectedRequire(module) {
|
|
112
221
|
console.warn(
|
|
113
222
|
"[HMR] unexpected require(" + module.id + ") to disposed module"
|
|
@@ -117,6 +226,7 @@ module.exports = function () {
|
|
|
117
226
|
for (var moduleId in currentUpdate) {
|
|
118
227
|
if ($hasOwnProperty$(currentUpdate, moduleId)) {
|
|
119
228
|
var newModuleFactory = currentUpdate[moduleId];
|
|
229
|
+
/** @type {ModuleEffect} */
|
|
120
230
|
var result = newModuleFactory
|
|
121
231
|
? getAffectedModuleEffects(moduleId)
|
|
122
232
|
: {
|
|
@@ -176,15 +286,24 @@ module.exports = function () {
|
|
|
176
286
|
};
|
|
177
287
|
}
|
|
178
288
|
if (doApply) {
|
|
179
|
-
appliedUpdate[moduleId] =
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
289
|
+
appliedUpdate[moduleId] = /** @type {EXPECTED_FUNCTION} */ (
|
|
290
|
+
newModuleFactory
|
|
291
|
+
);
|
|
292
|
+
addAllToSet(
|
|
293
|
+
outdatedModules,
|
|
294
|
+
/** @type {ModuleId[]} */ (result.outdatedModules)
|
|
295
|
+
);
|
|
296
|
+
var resultOutdatedDependencies =
|
|
297
|
+
/** @type {Record<ModuleId, ModuleId[]>} */ (
|
|
298
|
+
result.outdatedDependencies
|
|
299
|
+
);
|
|
300
|
+
for (moduleId in resultOutdatedDependencies) {
|
|
301
|
+
if ($hasOwnProperty$(resultOutdatedDependencies, moduleId)) {
|
|
183
302
|
if (!outdatedDependencies[moduleId])
|
|
184
303
|
outdatedDependencies[moduleId] = [];
|
|
185
304
|
addAllToSet(
|
|
186
305
|
outdatedDependencies[moduleId],
|
|
187
|
-
|
|
306
|
+
resultOutdatedDependencies[moduleId]
|
|
188
307
|
);
|
|
189
308
|
}
|
|
190
309
|
}
|
|
@@ -195,9 +314,12 @@ module.exports = function () {
|
|
|
195
314
|
}
|
|
196
315
|
}
|
|
197
316
|
}
|
|
198
|
-
currentUpdate =
|
|
317
|
+
currentUpdate = /** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */ (
|
|
318
|
+
/** @type {unknown} */ (undefined)
|
|
319
|
+
);
|
|
199
320
|
|
|
200
321
|
// Store self accepted outdated modules to require them later by the module system
|
|
322
|
+
/** @type {SelfAcceptedModule[]} */
|
|
201
323
|
var outdatedSelfAcceptedModules = [];
|
|
202
324
|
for (var j = 0; j < outdatedModules.length; j++) {
|
|
203
325
|
var outdatedModuleId = outdatedModules[j];
|
|
@@ -218,6 +340,7 @@ module.exports = function () {
|
|
|
218
340
|
}
|
|
219
341
|
}
|
|
220
342
|
|
|
343
|
+
/** @type {ModuleId[]} */
|
|
221
344
|
var moduleOutdatedDependencies;
|
|
222
345
|
|
|
223
346
|
return {
|
|
@@ -225,15 +348,18 @@ module.exports = function () {
|
|
|
225
348
|
currentUpdateRemovedChunks.forEach(function (chunkId) {
|
|
226
349
|
delete $installedChunks$[chunkId];
|
|
227
350
|
});
|
|
228
|
-
currentUpdateRemovedChunks =
|
|
351
|
+
currentUpdateRemovedChunks = /** @type {ModuleId[]} */ (
|
|
352
|
+
/** @type {unknown} */ (undefined)
|
|
353
|
+
);
|
|
229
354
|
|
|
230
355
|
var idx;
|
|
231
356
|
var queue = outdatedModules.slice();
|
|
232
357
|
while (queue.length > 0) {
|
|
233
|
-
var moduleId = queue.pop();
|
|
358
|
+
var moduleId = /** @type {ModuleId} */ (queue.pop());
|
|
234
359
|
var module = $moduleCache$[moduleId];
|
|
235
360
|
if (!module) continue;
|
|
236
361
|
|
|
362
|
+
/** @type {HotData} */
|
|
237
363
|
var data = {};
|
|
238
364
|
|
|
239
365
|
// Call dispose handlers
|
|
@@ -281,6 +407,7 @@ module.exports = function () {
|
|
|
281
407
|
}
|
|
282
408
|
},
|
|
283
409
|
apply: function (reportError) {
|
|
410
|
+
/** @type {Promise<unknown>[]} */
|
|
284
411
|
var acceptPromises = [];
|
|
285
412
|
// insert new code
|
|
286
413
|
for (var updateModuleId in appliedUpdate) {
|
|
@@ -301,8 +428,11 @@ module.exports = function () {
|
|
|
301
428
|
if (module) {
|
|
302
429
|
moduleOutdatedDependencies =
|
|
303
430
|
outdatedDependencies[outdatedModuleId];
|
|
431
|
+
/** @type {AcceptCallback[]} */
|
|
304
432
|
var callbacks = [];
|
|
433
|
+
/** @type {(AcceptErrorHandler | undefined)[]} */
|
|
305
434
|
var errorHandlers = [];
|
|
435
|
+
/** @type {ModuleId[]} */
|
|
306
436
|
var dependenciesForCallbacks = [];
|
|
307
437
|
for (var j = 0; j < moduleOutdatedDependencies.length; j++) {
|
|
308
438
|
var dependency = moduleOutdatedDependencies[j];
|
|
@@ -318,13 +448,15 @@ module.exports = function () {
|
|
|
318
448
|
}
|
|
319
449
|
}
|
|
320
450
|
for (var k = 0; k < callbacks.length; k++) {
|
|
451
|
+
/** @type {unknown} */
|
|
321
452
|
var result;
|
|
322
453
|
try {
|
|
323
454
|
result = callbacks[k].call(null, moduleOutdatedDependencies);
|
|
324
455
|
} catch (err) {
|
|
325
456
|
if (typeof errorHandlers[k] === "function") {
|
|
326
457
|
try {
|
|
327
|
-
|
|
458
|
+
/** @type {AcceptErrorHandler} */
|
|
459
|
+
(errorHandlers[k])(err, {
|
|
328
460
|
moduleId: outdatedModuleId,
|
|
329
461
|
dependencyId: dependenciesForCallbacks[k]
|
|
330
462
|
});
|
|
@@ -357,8 +489,12 @@ module.exports = function () {
|
|
|
357
489
|
}
|
|
358
490
|
}
|
|
359
491
|
}
|
|
360
|
-
if (
|
|
361
|
-
|
|
492
|
+
if (
|
|
493
|
+
result &&
|
|
494
|
+
typeof (/** @type {{ then?: unknown }} */ (result).then) ===
|
|
495
|
+
"function"
|
|
496
|
+
) {
|
|
497
|
+
acceptPromises.push(/** @type {Promise<unknown>} */ (result));
|
|
362
498
|
}
|
|
363
499
|
}
|
|
364
500
|
}
|
|
@@ -434,7 +570,9 @@ module.exports = function () {
|
|
|
434
570
|
removedModules,
|
|
435
571
|
promises,
|
|
436
572
|
applyHandlers,
|
|
437
|
-
updatedModulesList
|
|
573
|
+
updatedModulesList,
|
|
574
|
+
css,
|
|
575
|
+
forceLoadChunks
|
|
438
576
|
) {
|
|
439
577
|
applyHandlers.push(applyHandler);
|
|
440
578
|
currentUpdateChunks = {};
|
|
@@ -442,7 +580,7 @@ module.exports = function () {
|
|
|
442
580
|
currentUpdate = removedModules.reduce(function (obj, key) {
|
|
443
581
|
obj[key] = false;
|
|
444
582
|
return obj;
|
|
445
|
-
}, {});
|
|
583
|
+
}, /** @type {Record<ModuleId, EXPECTED_FUNCTION | false>} */ ({}));
|
|
446
584
|
currentUpdateRuntime = [];
|
|
447
585
|
chunkIds.forEach(function (chunkId) {
|
|
448
586
|
if (
|
|
@@ -466,6 +604,15 @@ module.exports = function () {
|
|
|
466
604
|
currentUpdateChunks[chunkId] = true;
|
|
467
605
|
}
|
|
468
606
|
};
|
|
607
|
+
// Force-load chunks that now own modules orphaned by a removed chunk;
|
|
608
|
+
// ensure handlers skip already-installed chunks, so no guard is needed.
|
|
609
|
+
if (forceLoadChunks) {
|
|
610
|
+
forceLoadChunks.forEach(function (chunkId) {
|
|
611
|
+
Object.keys($ensureChunkHandlers$).forEach(function (key) {
|
|
612
|
+
$ensureChunkHandlers$[key](chunkId, promises);
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
}
|
|
469
616
|
}
|
|
470
617
|
};
|
|
471
618
|
};
|
|
@@ -26,6 +26,7 @@ const { registerNotSerializable } = require("../util/serialization");
|
|
|
26
26
|
/** @typedef {import("../Compiler")} Compiler */
|
|
27
27
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
28
28
|
/** @typedef {import("../Module").BuildCallback} BuildCallback */
|
|
29
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
|
29
30
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
30
31
|
/** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
|
|
31
32
|
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
|
@@ -179,6 +180,7 @@ class LazyCompilationDependency extends Dependency {
|
|
|
179
180
|
*/
|
|
180
181
|
constructor(proxyModule) {
|
|
181
182
|
super();
|
|
183
|
+
/** @type {LazyCompilationProxyModule} */
|
|
182
184
|
this.proxyModule = proxyModule;
|
|
183
185
|
}
|
|
184
186
|
|
|
@@ -201,6 +203,14 @@ class LazyCompilationDependency extends Dependency {
|
|
|
201
203
|
|
|
202
204
|
registerNotSerializable(LazyCompilationDependency);
|
|
203
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Defines the build info properties specific to lazy compilation proxy modules.
|
|
208
|
+
* @typedef {object} KnownLazyCompilationProxyModuleBuildInfo
|
|
209
|
+
* @property {boolean=} active whether the proxied module was active when built
|
|
210
|
+
*/
|
|
211
|
+
|
|
212
|
+
/** @typedef {BuildInfo & KnownLazyCompilationProxyModuleBuildInfo} LazyCompilationProxyModuleBuildInfo */
|
|
213
|
+
|
|
204
214
|
class LazyCompilationProxyModule extends Module {
|
|
205
215
|
/**
|
|
206
216
|
* Creates an instance of LazyCompilationProxyModule.
|
|
@@ -217,10 +227,18 @@ class LazyCompilationProxyModule extends Module {
|
|
|
217
227
|
context,
|
|
218
228
|
originalModule.layer
|
|
219
229
|
);
|
|
230
|
+
// Redeclared with the lazy compilation proxy specific shape
|
|
231
|
+
/** @type {LazyCompilationProxyModuleBuildInfo | undefined} */
|
|
232
|
+
this.buildInfo = undefined;
|
|
233
|
+
/** @type {Module} */
|
|
220
234
|
this.originalModule = originalModule;
|
|
235
|
+
/** @type {string} */
|
|
221
236
|
this.request = request;
|
|
237
|
+
/** @type {string} */
|
|
222
238
|
this.client = client;
|
|
239
|
+
/** @type {string} */
|
|
223
240
|
this.data = data;
|
|
241
|
+
/** @type {boolean} */
|
|
224
242
|
this.active = active;
|
|
225
243
|
}
|
|
226
244
|
|
|
@@ -354,17 +372,19 @@ class LazyCompilationProxyModule extends Module {
|
|
|
354
372
|
);
|
|
355
373
|
const clientModule = moduleGraph.getModule(clientDep);
|
|
356
374
|
const block = this.blocks[0];
|
|
375
|
+
const cst = runtimeTemplate.renderConst();
|
|
376
|
+
const lt = runtimeTemplate.renderLet();
|
|
357
377
|
const client = Template.asString([
|
|
358
|
-
|
|
378
|
+
`${cst} client = ${runtimeTemplate.moduleExports({
|
|
359
379
|
module: clientModule,
|
|
360
380
|
chunkGraph,
|
|
361
381
|
request: clientDep.userRequest,
|
|
362
382
|
runtimeRequirements
|
|
363
383
|
})}`,
|
|
364
|
-
|
|
384
|
+
`${cst} data = ${JSON.stringify(this.data)};`
|
|
365
385
|
]);
|
|
366
386
|
const keepActive = Template.asString([
|
|
367
|
-
|
|
387
|
+
`${cst} dispose = client.keepAlive({ data: data, active: ${JSON.stringify(
|
|
368
388
|
Boolean(block)
|
|
369
389
|
)}, module: module, onError: onError });`
|
|
370
390
|
]);
|
|
@@ -392,7 +412,7 @@ class LazyCompilationProxyModule extends Module {
|
|
|
392
412
|
chunkGraph.getModuleId(module)
|
|
393
413
|
)}, function() { module.hot.invalidate(); });`,
|
|
394
414
|
"module.hot.dispose(function(data) { delete data.resolveSelf; dispose(data); });",
|
|
395
|
-
|
|
415
|
+
`if (${runtimeTemplate.optionalChaining("module.hot.data", "resolveSelf")}) module.hot.data.resolveSelf(module.exports);`
|
|
396
416
|
]),
|
|
397
417
|
"}",
|
|
398
418
|
"function onError() { /* ignore */ }",
|
|
@@ -401,12 +421,12 @@ class LazyCompilationProxyModule extends Module {
|
|
|
401
421
|
} else {
|
|
402
422
|
source = Template.asString([
|
|
403
423
|
client,
|
|
404
|
-
|
|
424
|
+
`${lt} resolveSelf, onError;`,
|
|
405
425
|
"module.exports = new Promise(function(resolve, reject) { resolveSelf = resolve; onError = reject; });",
|
|
406
426
|
"if (module.hot) {",
|
|
407
427
|
Template.indent([
|
|
408
428
|
"module.hot.accept();",
|
|
409
|
-
|
|
429
|
+
`if (${runtimeTemplate.optionalChaining("module.hot.data", "resolveSelf")}) module.hot.data.resolveSelf(module.exports);`,
|
|
410
430
|
"module.hot.dispose(function(data) { data.resolveSelf = resolveSelf; dispose(data); });"
|
|
411
431
|
]),
|
|
412
432
|
"}",
|
|
@@ -492,9 +512,13 @@ class LazyCompilationPlugin {
|
|
|
492
512
|
* @param {Options} options options
|
|
493
513
|
*/
|
|
494
514
|
constructor({ backend, entries, imports, test }) {
|
|
515
|
+
/** @type {BackEnd} */
|
|
495
516
|
this.backend = backend;
|
|
517
|
+
/** @type {boolean | undefined} */
|
|
496
518
|
this.entries = entries;
|
|
519
|
+
/** @type {boolean | undefined} */
|
|
497
520
|
this.imports = imports;
|
|
521
|
+
/** @type {string | RegExp | TestFn | undefined} */
|
|
498
522
|
this.test = test;
|
|
499
523
|
}
|
|
500
524
|
|