@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.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/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -10,6 +10,7 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
10
10
|
|
|
11
11
|
class ConsumeSharedFallbackDependency extends ModuleDependency {
|
|
12
12
|
/**
|
|
13
|
+
* Creates an instance of ConsumeSharedFallbackDependency.
|
|
13
14
|
* @param {string} request the request
|
|
14
15
|
*/
|
|
15
16
|
constructor(request) {
|
|
@@ -39,14 +39,15 @@ const fallbackModuleCache = new WeakMap();
|
|
|
39
39
|
/** @typedef {import("../Module").ExportsType} ExportsType */
|
|
40
40
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
|
41
41
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
42
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
43
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
42
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ConsumeOptions]>} ObjectDeserializerContext */
|
|
43
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ConsumeOptions]>} ObjectSerializerContext */
|
|
44
44
|
/** @typedef {import("../util/Hash")} Hash */
|
|
45
45
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
46
46
|
/** @typedef {import("../util/semver").SemVerRange} SemVerRange */
|
|
47
47
|
/** @typedef {import("../Module").BasicSourceTypes} BasicSourceTypes */
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
|
+
* Represents the consume shared module runtime component.
|
|
50
51
|
* @typedef {object} ConsumeOptions
|
|
51
52
|
* @property {string=} import fallback request
|
|
52
53
|
* @property {string=} importResolved resolved fallback request
|
|
@@ -61,15 +62,18 @@ const fallbackModuleCache = new WeakMap();
|
|
|
61
62
|
|
|
62
63
|
class ConsumeSharedModule extends Module {
|
|
63
64
|
/**
|
|
65
|
+
* Creates an instance of ConsumeSharedModule.
|
|
64
66
|
* @param {string} context context
|
|
65
67
|
* @param {ConsumeOptions} options consume options
|
|
66
68
|
*/
|
|
67
69
|
constructor(context, options) {
|
|
68
70
|
super(WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE, context);
|
|
71
|
+
/** @type {ConsumeOptions} */
|
|
69
72
|
this.options = options;
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
/**
|
|
76
|
+
* Returns the unique identifier used to reference this module.
|
|
73
77
|
* @returns {string} a unique identifier of the module
|
|
74
78
|
*/
|
|
75
79
|
identifier() {
|
|
@@ -88,6 +92,7 @@ class ConsumeSharedModule extends Module {
|
|
|
88
92
|
}
|
|
89
93
|
|
|
90
94
|
/**
|
|
95
|
+
* Returns a human-readable identifier for this module.
|
|
91
96
|
* @param {RequestShortener} requestShortener the request shortener
|
|
92
97
|
* @returns {string} a user readable identifier of the module
|
|
93
98
|
*/
|
|
@@ -111,6 +116,7 @@ class ConsumeSharedModule extends Module {
|
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
/**
|
|
119
|
+
* Gets the library identifier.
|
|
114
120
|
* @param {LibIdentOptions} options options
|
|
115
121
|
* @returns {LibIdent | null} an identifier for library inclusion
|
|
116
122
|
*/
|
|
@@ -124,6 +130,7 @@ class ConsumeSharedModule extends Module {
|
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
/**
|
|
133
|
+
* Checks whether the module needs to be rebuilt for the current build state.
|
|
127
134
|
* @param {NeedBuildContext} context context info
|
|
128
135
|
* @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
|
|
129
136
|
* @returns {void}
|
|
@@ -133,6 +140,7 @@ class ConsumeSharedModule extends Module {
|
|
|
133
140
|
}
|
|
134
141
|
|
|
135
142
|
/**
|
|
143
|
+
* Builds the module using the provided compilation context.
|
|
136
144
|
* @param {WebpackOptions} options webpack options
|
|
137
145
|
* @param {Compilation} compilation the compilation
|
|
138
146
|
* @param {ResolverWithOptions} resolver the resolver
|
|
@@ -157,6 +165,7 @@ class ConsumeSharedModule extends Module {
|
|
|
157
165
|
}
|
|
158
166
|
|
|
159
167
|
/**
|
|
168
|
+
* Returns the source types this module can generate.
|
|
160
169
|
* @returns {SourceTypes} types available (do not mutate)
|
|
161
170
|
*/
|
|
162
171
|
getSourceTypes() {
|
|
@@ -177,6 +186,7 @@ class ConsumeSharedModule extends Module {
|
|
|
177
186
|
}
|
|
178
187
|
|
|
179
188
|
/**
|
|
189
|
+
* Get fallback module.
|
|
180
190
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
181
191
|
* @returns {Module | null} fallback module
|
|
182
192
|
*/
|
|
@@ -213,6 +223,7 @@ class ConsumeSharedModule extends Module {
|
|
|
213
223
|
}
|
|
214
224
|
|
|
215
225
|
/**
|
|
226
|
+
* Returns export type.
|
|
216
227
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
217
228
|
* @param {boolean | undefined} strict the importing module is strict
|
|
218
229
|
* @returns {ExportsType} export type
|
|
@@ -228,6 +239,7 @@ class ConsumeSharedModule extends Module {
|
|
|
228
239
|
}
|
|
229
240
|
|
|
230
241
|
/**
|
|
242
|
+
* Returns the estimated size for the requested source type.
|
|
231
243
|
* @param {string=} type the source type for which the size should be estimated
|
|
232
244
|
* @returns {number} the estimated size of the module (must be non-zero)
|
|
233
245
|
*/
|
|
@@ -236,6 +248,7 @@ class ConsumeSharedModule extends Module {
|
|
|
236
248
|
}
|
|
237
249
|
|
|
238
250
|
/**
|
|
251
|
+
* Updates the hash with the data contributed by this instance.
|
|
239
252
|
* @param {Hash} hash the hash used to track dependencies
|
|
240
253
|
* @param {UpdateHashContext} context context
|
|
241
254
|
* @returns {void}
|
|
@@ -246,6 +259,7 @@ class ConsumeSharedModule extends Module {
|
|
|
246
259
|
}
|
|
247
260
|
|
|
248
261
|
/**
|
|
262
|
+
* Generates code and runtime requirements for this module.
|
|
249
263
|
* @param {CodeGenerationContext} context context for code generation
|
|
250
264
|
* @returns {CodeGenerationResult} result
|
|
251
265
|
*/
|
|
@@ -318,21 +332,21 @@ class ConsumeSharedModule extends Module {
|
|
|
318
332
|
}
|
|
319
333
|
|
|
320
334
|
/**
|
|
335
|
+
* Serializes this instance into the provided serializer context.
|
|
321
336
|
* @param {ObjectSerializerContext} context context
|
|
322
337
|
*/
|
|
323
338
|
serialize(context) {
|
|
324
|
-
|
|
325
|
-
write(this.options);
|
|
339
|
+
context.write(this.options);
|
|
326
340
|
super.serialize(context);
|
|
327
341
|
}
|
|
328
342
|
|
|
329
343
|
/**
|
|
344
|
+
* Restores this instance from the provided deserializer context.
|
|
330
345
|
* @param {ObjectDeserializerContext} context context
|
|
331
346
|
*/
|
|
332
347
|
deserialize(context) {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
super.deserialize(context);
|
|
348
|
+
this.options = context.read();
|
|
349
|
+
super.deserialize(context.rest);
|
|
336
350
|
}
|
|
337
351
|
}
|
|
338
352
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const ModuleNotFoundError = require("../ModuleNotFoundError");
|
|
9
8
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
|
-
const WebpackError = require("../WebpackError");
|
|
11
9
|
const { parseOptions } = require("../container/options");
|
|
10
|
+
const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
|
|
11
|
+
const WebpackError = require("../errors/WebpackError");
|
|
12
12
|
const LazySet = require("../util/LazySet");
|
|
13
13
|
const { parseRange } = require("../util/semver");
|
|
14
14
|
const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependency");
|
|
@@ -37,14 +37,16 @@ const PLUGIN_NAME = "ConsumeSharedPlugin";
|
|
|
37
37
|
|
|
38
38
|
class ConsumeSharedPlugin {
|
|
39
39
|
/**
|
|
40
|
+
* Creates an instance of ConsumeSharedPlugin.
|
|
40
41
|
* @param {ConsumeSharedPluginOptions} options options
|
|
41
42
|
*/
|
|
42
43
|
constructor(options) {
|
|
44
|
+
/** @type {ConsumeSharedPluginOptions} */
|
|
43
45
|
this.options = options;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
*
|
|
49
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
48
50
|
* @param {Compiler} compiler the compiler instance
|
|
49
51
|
* @returns {void}
|
|
50
52
|
*/
|
|
@@ -149,6 +151,7 @@ class ConsumeSharedPlugin {
|
|
|
149
151
|
);
|
|
150
152
|
|
|
151
153
|
/**
|
|
154
|
+
* Creates a consume shared module.
|
|
152
155
|
* @param {string} context issuer directory
|
|
153
156
|
* @param {string} request request
|
|
154
157
|
* @param {ConsumeOptions} config options
|
|
@@ -156,6 +159,7 @@ class ConsumeSharedPlugin {
|
|
|
156
159
|
*/
|
|
157
160
|
const createConsumeSharedModule = (context, request, config) => {
|
|
158
161
|
/**
|
|
162
|
+
* Required version warning.
|
|
159
163
|
* @param {string} details details
|
|
160
164
|
*/
|
|
161
165
|
const requiredVersionWarning = (details) => {
|
|
@@ -171,6 +175,7 @@ class ConsumeSharedPlugin {
|
|
|
171
175
|
return Promise.all([
|
|
172
176
|
new Promise(
|
|
173
177
|
/**
|
|
178
|
+
* Handles the callback logic for this hook.
|
|
174
179
|
* @param {(value?: string) => void} resolve resolve
|
|
175
180
|
*/
|
|
176
181
|
(resolve) => {
|
|
@@ -214,6 +219,7 @@ class ConsumeSharedPlugin {
|
|
|
214
219
|
),
|
|
215
220
|
new Promise(
|
|
216
221
|
/**
|
|
222
|
+
* Handles the name callback for this hook.
|
|
217
223
|
* @param {(value?: SemVerRange) => void} resolve resolve
|
|
218
224
|
*/
|
|
219
225
|
(resolve) => {
|
|
@@ -351,15 +357,9 @@ class ConsumeSharedPlugin {
|
|
|
351
357
|
) {
|
|
352
358
|
return Promise.resolve();
|
|
353
359
|
}
|
|
354
|
-
const options = resolvedConsumes.get(
|
|
355
|
-
/** @type {string} */ (resource)
|
|
356
|
-
);
|
|
360
|
+
const options = resolvedConsumes.get(resource);
|
|
357
361
|
if (options !== undefined) {
|
|
358
|
-
return createConsumeSharedModule(
|
|
359
|
-
context,
|
|
360
|
-
/** @type {string} */ (resource),
|
|
361
|
-
options
|
|
362
|
-
);
|
|
362
|
+
return createConsumeSharedModule(context, resource, options);
|
|
363
363
|
}
|
|
364
364
|
return Promise.resolve();
|
|
365
365
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
9
|
const RuntimeModule = require("../RuntimeModule");
|
|
10
10
|
const Template = require("../Template");
|
|
11
|
+
const { compareModulesById } = require("../util/comparators");
|
|
11
12
|
const {
|
|
12
13
|
parseVersionRuntimeCode,
|
|
13
14
|
rangeToStringRuntimeCode,
|
|
@@ -31,10 +32,12 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
31
32
|
*/
|
|
32
33
|
constructor(runtimeRequirements) {
|
|
33
34
|
super("consumes", RuntimeModule.STAGE_ATTACH);
|
|
35
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
34
36
|
this._runtimeRequirements = runtimeRequirements;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
/**
|
|
40
|
+
* Generates runtime code for this runtime module.
|
|
38
41
|
* @returns {string | null} runtime code
|
|
39
42
|
*/
|
|
40
43
|
generate() {
|
|
@@ -70,12 +73,14 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
70
73
|
);
|
|
71
74
|
}
|
|
72
75
|
};
|
|
76
|
+
const byId = compareModulesById(chunkGraph);
|
|
73
77
|
for (const chunk of /** @type {Chunk} */ (
|
|
74
78
|
this.chunk
|
|
75
79
|
).getAllReferencedChunks()) {
|
|
76
|
-
const modules = chunkGraph.
|
|
80
|
+
const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(
|
|
77
81
|
chunk,
|
|
78
|
-
"consume-shared"
|
|
82
|
+
"consume-shared",
|
|
83
|
+
byId
|
|
79
84
|
);
|
|
80
85
|
if (!modules) continue;
|
|
81
86
|
addModules(
|
|
@@ -87,27 +92,29 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
87
92
|
for (const chunk of /** @type {Chunk} */ (
|
|
88
93
|
this.chunk
|
|
89
94
|
).getAllInitialChunks()) {
|
|
90
|
-
const modules = chunkGraph.
|
|
95
|
+
const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(
|
|
91
96
|
chunk,
|
|
92
|
-
"consume-shared"
|
|
97
|
+
"consume-shared",
|
|
98
|
+
byId
|
|
93
99
|
);
|
|
94
100
|
if (!modules) continue;
|
|
95
101
|
addModules(modules, chunk, initialConsumes);
|
|
96
102
|
}
|
|
97
103
|
if (moduleIdToSourceMapping.size === 0) return null;
|
|
104
|
+
const cst = runtimeTemplate.renderConst();
|
|
98
105
|
return Template.asString([
|
|
99
106
|
parseVersionRuntimeCode(runtimeTemplate),
|
|
100
107
|
versionLtRuntimeCode(runtimeTemplate),
|
|
101
108
|
rangeToStringRuntimeCode(runtimeTemplate),
|
|
102
109
|
satisfyRuntimeCode(runtimeTemplate),
|
|
103
|
-
|
|
110
|
+
`${cst} exists = ${runtimeTemplate.basicFunction("scope, key", [
|
|
104
111
|
`return scope && ${RuntimeGlobals.hasOwnProperty}(scope, key);`
|
|
105
112
|
])}`,
|
|
106
|
-
|
|
113
|
+
`${cst} get = ${runtimeTemplate.basicFunction("entry", [
|
|
107
114
|
"entry.loaded = 1;",
|
|
108
115
|
"return entry.get()"
|
|
109
116
|
])};`,
|
|
110
|
-
|
|
117
|
+
`${cst} eagerOnly = ${runtimeTemplate.basicFunction("versions", [
|
|
111
118
|
`return Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
|
|
112
119
|
"filtered, version",
|
|
113
120
|
Template.indent([
|
|
@@ -118,10 +125,10 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
118
125
|
])
|
|
119
126
|
)}, {});`
|
|
120
127
|
])};`,
|
|
121
|
-
|
|
128
|
+
`${cst} findLatestVersion = ${runtimeTemplate.basicFunction(
|
|
122
129
|
"scope, key, eager",
|
|
123
130
|
[
|
|
124
|
-
|
|
131
|
+
`${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
|
|
125
132
|
`var key = Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
|
|
126
133
|
"a, b",
|
|
127
134
|
["return !a || versionLt(a, b) ? b : a;"]
|
|
@@ -129,10 +136,10 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
129
136
|
"return key && versions[key];"
|
|
130
137
|
]
|
|
131
138
|
)};`,
|
|
132
|
-
|
|
139
|
+
`${cst} findSatisfyingVersion = ${runtimeTemplate.basicFunction(
|
|
133
140
|
"scope, key, requiredVersion, eager",
|
|
134
141
|
[
|
|
135
|
-
|
|
142
|
+
`${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
|
|
136
143
|
`var key = Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
|
|
137
144
|
"a, b",
|
|
138
145
|
[
|
|
@@ -143,26 +150,26 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
143
150
|
"return key && versions[key]"
|
|
144
151
|
]
|
|
145
152
|
)};`,
|
|
146
|
-
|
|
153
|
+
`${cst} findSingletonVersionKey = ${runtimeTemplate.basicFunction(
|
|
147
154
|
"scope, key, eager",
|
|
148
155
|
[
|
|
149
|
-
|
|
156
|
+
`${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
|
|
150
157
|
`return Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
|
|
151
158
|
"a, b",
|
|
152
159
|
["return !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;"]
|
|
153
160
|
)}, 0);`
|
|
154
161
|
]
|
|
155
162
|
)};`,
|
|
156
|
-
|
|
163
|
+
`${cst} getInvalidSingletonVersionMessage = ${runtimeTemplate.basicFunction(
|
|
157
164
|
"scope, key, version, requiredVersion",
|
|
158
165
|
[
|
|
159
166
|
'return "Unsatisfied version " + version + " from " + (version && scope[key][version].from) + " of shared singleton module " + key + " (required " + rangeToString(requiredVersion) + ")"'
|
|
160
167
|
]
|
|
161
168
|
)};`,
|
|
162
|
-
|
|
169
|
+
`${cst} getInvalidVersionMessage = ${runtimeTemplate.basicFunction(
|
|
163
170
|
"scope, scopeName, key, requiredVersion, eager",
|
|
164
171
|
[
|
|
165
|
-
|
|
172
|
+
`${cst} versions = scope[key];`,
|
|
166
173
|
'return "No satisfying version (" + rangeToString(requiredVersion) + ")" + (eager ? " for eager consumption" : "") + " of shared module " + key + " found in shared scope " + scopeName + ".\\n" +',
|
|
167
174
|
`\t"Available versions: " + Object.keys(versions).map(${runtimeTemplate.basicFunction(
|
|
168
175
|
"key",
|
|
@@ -170,26 +177,29 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
170
177
|
)}).join(", ");`
|
|
171
178
|
]
|
|
172
179
|
)};`,
|
|
173
|
-
|
|
180
|
+
`${cst} fail = ${runtimeTemplate.basicFunction("msg", [
|
|
174
181
|
"throw new Error(msg);"
|
|
175
182
|
])}`,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
183
|
+
`${cst} failAsNotExist = ${runtimeTemplate.basicFunction(
|
|
184
|
+
"scopeName, key",
|
|
185
|
+
[
|
|
186
|
+
'return fail("Shared module " + key + " doesn\'t exist in shared scope " + scopeName);'
|
|
187
|
+
]
|
|
188
|
+
)}`,
|
|
189
|
+
`${cst} warn = /*#__PURE__*/ ${
|
|
180
190
|
compilation.outputOptions.ignoreBrowserWarnings
|
|
181
191
|
? runtimeTemplate.basicFunction("", "")
|
|
182
192
|
: runtimeTemplate.basicFunction("msg", [
|
|
183
193
|
'if (typeof console !== "undefined" && console.warn) console.warn(msg);'
|
|
184
194
|
])
|
|
185
195
|
};`,
|
|
186
|
-
|
|
196
|
+
`${cst} init = ${runtimeTemplate.returningFunction(
|
|
187
197
|
Template.asString([
|
|
188
198
|
"function(scopeName, key, eager, c, d) {",
|
|
189
199
|
Template.indent([
|
|
190
|
-
|
|
200
|
+
`${cst} promise = ${RuntimeGlobals.initializeSharing}(scopeName);`,
|
|
191
201
|
// if we require eager shared, we expect it to be already loaded before it requested, no need to wait the whole scope loaded.
|
|
192
|
-
|
|
202
|
+
`if (${runtimeTemplate.optionalChaining("promise", "then")} && !eager) { `,
|
|
193
203
|
Template.indent([
|
|
194
204
|
`return promise.then(fn.bind(fn, scopeName, ${RuntimeGlobals.shareScopeMap}[scopeName], key, false, c, d));`
|
|
195
205
|
]),
|
|
@@ -201,50 +211,50 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
201
211
|
"fn"
|
|
202
212
|
)};`,
|
|
203
213
|
"",
|
|
204
|
-
|
|
214
|
+
`${cst} useFallback = ${runtimeTemplate.basicFunction(
|
|
205
215
|
"scopeName, key, fallback",
|
|
206
216
|
["return fallback ? fallback() : failAsNotExist(scopeName, key);"]
|
|
207
217
|
)}`,
|
|
208
|
-
|
|
218
|
+
`${cst} load = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
209
219
|
"scopeName, scope, key, eager, fallback",
|
|
210
220
|
[
|
|
211
221
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
212
222
|
"return get(findLatestVersion(scope, key, eager));"
|
|
213
223
|
]
|
|
214
224
|
)});`,
|
|
215
|
-
|
|
225
|
+
`${cst} loadVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
216
226
|
"scopeName, scope, key, eager, requiredVersion, fallback",
|
|
217
227
|
[
|
|
218
228
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
219
|
-
|
|
229
|
+
`${cst} satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);`,
|
|
220
230
|
"if (satisfyingVersion) return get(satisfyingVersion);",
|
|
221
231
|
"warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))",
|
|
222
232
|
"return get(findLatestVersion(scope, key, eager));"
|
|
223
233
|
]
|
|
224
234
|
)});`,
|
|
225
|
-
|
|
235
|
+
`${cst} loadStrictVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
226
236
|
"scopeName, scope, key, eager, requiredVersion, fallback",
|
|
227
237
|
[
|
|
228
238
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
229
|
-
|
|
239
|
+
`${cst} satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);`,
|
|
230
240
|
"if (satisfyingVersion) return get(satisfyingVersion);",
|
|
231
241
|
"if (fallback) return fallback();",
|
|
232
242
|
"fail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));"
|
|
233
243
|
]
|
|
234
244
|
)});`,
|
|
235
|
-
|
|
245
|
+
`${cst} loadSingleton = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
236
246
|
"scopeName, scope, key, eager, fallback",
|
|
237
247
|
[
|
|
238
248
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
239
|
-
|
|
249
|
+
`${cst} version = findSingletonVersionKey(scope, key, eager);`,
|
|
240
250
|
"return get(scope[key][version]);"
|
|
241
251
|
]
|
|
242
252
|
)});`,
|
|
243
|
-
|
|
253
|
+
`${cst} loadSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
244
254
|
"scopeName, scope, key, eager, requiredVersion, fallback",
|
|
245
255
|
[
|
|
246
256
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
247
|
-
|
|
257
|
+
`${cst} version = findSingletonVersionKey(scope, key, eager);`,
|
|
248
258
|
"if (!satisfy(requiredVersion, version)) {",
|
|
249
259
|
Template.indent([
|
|
250
260
|
"warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));"
|
|
@@ -253,11 +263,11 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
253
263
|
"return get(scope[key][version]);"
|
|
254
264
|
]
|
|
255
265
|
)});`,
|
|
256
|
-
|
|
266
|
+
`${cst} loadStrictSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
|
|
257
267
|
"scopeName, scope, key, eager, requiredVersion, fallback",
|
|
258
268
|
[
|
|
259
269
|
"if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
|
|
260
|
-
|
|
270
|
+
`${cst} version = findSingletonVersionKey(scope, key, eager);`,
|
|
261
271
|
"if (!satisfy(requiredVersion, version)) {",
|
|
262
272
|
Template.indent([
|
|
263
273
|
"fail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));"
|
|
@@ -266,8 +276,8 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
266
276
|
"return get(scope[key][version]);"
|
|
267
277
|
]
|
|
268
278
|
)});`,
|
|
269
|
-
|
|
270
|
-
|
|
279
|
+
`${cst} installedModules = {};`,
|
|
280
|
+
`${cst} moduleToHandlerMapping = {`,
|
|
271
281
|
Template.indent(
|
|
272
282
|
Array.from(
|
|
273
283
|
moduleIdToSourceMapping,
|
|
@@ -278,7 +288,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
278
288
|
|
|
279
289
|
initialConsumes.length > 0
|
|
280
290
|
? Template.asString([
|
|
281
|
-
|
|
291
|
+
`${cst} initialConsumes = ${JSON.stringify(initialConsumes)};`,
|
|
282
292
|
`initialConsumes.forEach(${runtimeTemplate.basicFunction("id", [
|
|
283
293
|
`${
|
|
284
294
|
RuntimeGlobals.moduleFactories
|
|
@@ -286,7 +296,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
286
296
|
"// Handle case when module is used sync",
|
|
287
297
|
"installedModules[id] = 0;",
|
|
288
298
|
`delete ${RuntimeGlobals.moduleCache}[id];`,
|
|
289
|
-
|
|
299
|
+
`${cst} factory = moduleToHandlerMapping[id]();`,
|
|
290
300
|
'if(typeof factory !== "function") throw new Error("Shared module is not available for eager consumption: " + id);',
|
|
291
301
|
"module.exports = factory();"
|
|
292
302
|
])}`
|
|
@@ -295,12 +305,12 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
295
305
|
: "// no consumes in initial chunks",
|
|
296
306
|
this._runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers)
|
|
297
307
|
? Template.asString([
|
|
298
|
-
|
|
308
|
+
`${cst} chunkMapping = ${JSON.stringify(
|
|
299
309
|
chunkToModuleMapping,
|
|
300
310
|
null,
|
|
301
311
|
"\t"
|
|
302
312
|
)};`,
|
|
303
|
-
|
|
313
|
+
`${cst} startedInstallModules = {};`,
|
|
304
314
|
`${
|
|
305
315
|
RuntimeGlobals.ensureChunkHandlers
|
|
306
316
|
}.consumes = ${runtimeTemplate.basicFunction("chunkId, promises", [
|
|
@@ -311,7 +321,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
311
321
|
[
|
|
312
322
|
`if(${RuntimeGlobals.hasOwnProperty}(installedModules, id)) return promises.push(installedModules[id]);`,
|
|
313
323
|
"if(!startedInstallModules[id]) {",
|
|
314
|
-
|
|
324
|
+
`${cst} onFactory = ${runtimeTemplate.basicFunction(
|
|
315
325
|
"factory",
|
|
316
326
|
[
|
|
317
327
|
"installedModules[id] = 0;",
|
|
@@ -324,7 +334,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
324
334
|
]
|
|
325
335
|
)};`,
|
|
326
336
|
"startedInstallModules[id] = true;",
|
|
327
|
-
|
|
337
|
+
`${cst} onError = ${runtimeTemplate.basicFunction("error", [
|
|
328
338
|
"delete installedModules[id];",
|
|
329
339
|
`${
|
|
330
340
|
RuntimeGlobals.moduleFactories
|
|
@@ -335,7 +345,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
|
335
345
|
])};`,
|
|
336
346
|
"try {",
|
|
337
347
|
Template.indent([
|
|
338
|
-
|
|
348
|
+
`${cst} promise = moduleToHandlerMapping[id]();`,
|
|
339
349
|
"if(promise.then) {",
|
|
340
350
|
Template.indent(
|
|
341
351
|
"promises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));"
|
|
@@ -10,6 +10,7 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
10
10
|
|
|
11
11
|
class ProvideForSharedDependency extends ModuleDependency {
|
|
12
12
|
/**
|
|
13
|
+
* Creates an instance of ProvideForSharedDependency.
|
|
13
14
|
* @param {string} request request string
|
|
14
15
|
*/
|
|
15
16
|
constructor(request) {
|
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
12
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
11
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string, string | false, boolean]>} ObjectDeserializerContext */
|
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string, string | false, boolean]>} ObjectSerializerContext */
|
|
13
13
|
|
|
14
14
|
class ProvideSharedDependency extends Dependency {
|
|
15
15
|
/**
|
|
16
|
+
* Creates an instance of ProvideSharedDependency.
|
|
16
17
|
* @param {string} shareScope share scope
|
|
17
18
|
* @param {string} name module name
|
|
18
19
|
* @param {string | false} version version
|
|
@@ -21,10 +22,15 @@ class ProvideSharedDependency extends Dependency {
|
|
|
21
22
|
*/
|
|
22
23
|
constructor(shareScope, name, version, request, eager) {
|
|
23
24
|
super();
|
|
25
|
+
/** @type {string} */
|
|
24
26
|
this.shareScope = shareScope;
|
|
27
|
+
/** @type {string} */
|
|
25
28
|
this.name = name;
|
|
29
|
+
/** @type {string | false} */
|
|
26
30
|
this.version = version;
|
|
31
|
+
/** @type {string} */
|
|
27
32
|
this.request = request;
|
|
33
|
+
/** @type {boolean} */
|
|
28
34
|
this.eager = eager;
|
|
29
35
|
}
|
|
30
36
|
|
|
@@ -33,6 +39,7 @@ class ProvideSharedDependency extends Dependency {
|
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
/**
|
|
42
|
+
* Returns an identifier to merge equal requests.
|
|
36
43
|
* @returns {string | null} an identifier to merge equal requests
|
|
37
44
|
*/
|
|
38
45
|
getResourceIdentifier() {
|
|
@@ -42,32 +49,44 @@ class ProvideSharedDependency extends Dependency {
|
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
/**
|
|
52
|
+
* Serializes this instance into the provided serializer context.
|
|
45
53
|
* @param {ObjectSerializerContext} context context
|
|
46
54
|
*/
|
|
47
55
|
serialize(context) {
|
|
48
|
-
context
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
context
|
|
57
|
+
.write(this.shareScope)
|
|
58
|
+
.write(this.name)
|
|
59
|
+
.write(this.request)
|
|
60
|
+
.write(this.version)
|
|
61
|
+
.write(this.eager);
|
|
53
62
|
super.serialize(context);
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
/**
|
|
66
|
+
* Restores this instance from the provided deserializer context.
|
|
57
67
|
* @param {ObjectDeserializerContext} context context
|
|
58
68
|
* @returns {ProvideSharedDependency} deserialize fallback dependency
|
|
59
69
|
*/
|
|
60
70
|
static deserialize(context) {
|
|
61
|
-
|
|
71
|
+
// wire order is shareScope, name, request, version, eager;
|
|
72
|
+
// reorder into the constructor's (…, version, request, …) signature
|
|
73
|
+
const shareScope = context.read();
|
|
74
|
+
const c1 = context.rest;
|
|
75
|
+
const name = c1.read();
|
|
76
|
+
const c2 = c1.rest;
|
|
77
|
+
const request = c2.read();
|
|
78
|
+
const c3 = c2.rest;
|
|
79
|
+
const version = c3.read();
|
|
80
|
+
const c4 = c3.rest;
|
|
81
|
+
const eager = c4.read();
|
|
62
82
|
const obj = new ProvideSharedDependency(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
shareScope,
|
|
84
|
+
name,
|
|
85
|
+
version,
|
|
86
|
+
request,
|
|
87
|
+
eager
|
|
68
88
|
);
|
|
69
|
-
|
|
70
|
-
obj.deserialize(context);
|
|
89
|
+
obj.deserialize(c4.rest);
|
|
71
90
|
return obj;
|
|
72
91
|
}
|
|
73
92
|
}
|