webpack 5.92.1 → 5.94.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 +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -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 +1 -0
- package/types.d.ts +682 -347
@@ -0,0 +1,144 @@
|
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
const { ConcatSource } = require("webpack-sources");
|
9
|
+
const ConcatenatedModule = require("../optimize/ConcatenatedModule");
|
10
|
+
const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
11
|
+
|
12
|
+
/** @typedef {import("webpack-sources").Source} Source */
|
13
|
+
/** @typedef {import("../../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
14
|
+
/** @typedef {import("../../declarations/WebpackOptions").LibraryType} LibraryType */
|
15
|
+
/** @typedef {import("../Chunk")} Chunk */
|
16
|
+
/** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */
|
17
|
+
/** @typedef {import("../Compiler")} Compiler */
|
18
|
+
/** @typedef {import("../Module")} Module */
|
19
|
+
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
20
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */
|
21
|
+
/** @typedef {import("../util/Hash")} Hash */
|
22
|
+
/** @template T @typedef {import("./AbstractLibraryPlugin").LibraryContext<T>} LibraryContext<T> */
|
23
|
+
|
24
|
+
/**
|
25
|
+
* @typedef {object} ModernModuleLibraryPluginOptions
|
26
|
+
* @property {LibraryType} type
|
27
|
+
*/
|
28
|
+
|
29
|
+
/**
|
30
|
+
* @typedef {object} ModernModuleLibraryPluginParsed
|
31
|
+
* @property {string} name
|
32
|
+
*/
|
33
|
+
|
34
|
+
/**
|
35
|
+
* @typedef {ModernModuleLibraryPluginParsed} T
|
36
|
+
* @extends {AbstractLibraryPlugin<ModernModuleLibraryPluginParsed>}
|
37
|
+
*/
|
38
|
+
class ModernModuleLibraryPlugin extends AbstractLibraryPlugin {
|
39
|
+
/**
|
40
|
+
* Apply the plugin
|
41
|
+
* @param {Compiler} compiler the compiler instance
|
42
|
+
* @returns {void}
|
43
|
+
*/
|
44
|
+
apply(compiler) {
|
45
|
+
super.apply(compiler);
|
46
|
+
|
47
|
+
compiler.hooks.compilation.tap("ModernModuleLibraryPlugin", compilation => {
|
48
|
+
const { exportsDefinitions } =
|
49
|
+
ConcatenatedModule.getCompilationHooks(compilation);
|
50
|
+
exportsDefinitions.tap("ModernModuleLibraryPlugin", () => true);
|
51
|
+
});
|
52
|
+
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* @param {ModernModuleLibraryPluginOptions} options the plugin options
|
56
|
+
*/
|
57
|
+
constructor(options) {
|
58
|
+
super({
|
59
|
+
pluginName: "ModernModuleLibraryPlugin",
|
60
|
+
type: options.type
|
61
|
+
});
|
62
|
+
}
|
63
|
+
|
64
|
+
/**
|
65
|
+
* @param {LibraryOptions} library normalized library option
|
66
|
+
* @returns {T | false} preprocess as needed by overriding
|
67
|
+
*/
|
68
|
+
parseOptions(library) {
|
69
|
+
const { name } = library;
|
70
|
+
if (name) {
|
71
|
+
throw new Error(
|
72
|
+
`Library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
73
|
+
);
|
74
|
+
}
|
75
|
+
const _name = /** @type {string} */ (name);
|
76
|
+
return {
|
77
|
+
name: _name
|
78
|
+
};
|
79
|
+
}
|
80
|
+
|
81
|
+
/**
|
82
|
+
* @param {Source} source source
|
83
|
+
* @param {Module} module module
|
84
|
+
* @param {StartupRenderContext} renderContext render context
|
85
|
+
* @param {LibraryContext<T>} libraryContext context
|
86
|
+
* @returns {Source} source with library export
|
87
|
+
*/
|
88
|
+
renderStartup(
|
89
|
+
source,
|
90
|
+
module,
|
91
|
+
{ moduleGraph, chunk },
|
92
|
+
{ options, compilation }
|
93
|
+
) {
|
94
|
+
const result = new ConcatSource(source);
|
95
|
+
const exportsInfo = moduleGraph.getExportsInfo(module);
|
96
|
+
const definitions =
|
97
|
+
/** @type {BuildMeta} */
|
98
|
+
(module.buildMeta).exportsFinalName;
|
99
|
+
const exports = [];
|
100
|
+
|
101
|
+
for (const exportInfo of exportsInfo.orderedExports) {
|
102
|
+
let shouldContinue = false;
|
103
|
+
const reexport = exportInfo.findTarget(moduleGraph, _m => true);
|
104
|
+
|
105
|
+
if (reexport) {
|
106
|
+
const exp = moduleGraph.getExportsInfo(reexport.module);
|
107
|
+
|
108
|
+
for (const reexportInfo of exp.orderedExports) {
|
109
|
+
if (
|
110
|
+
!reexportInfo.provided &&
|
111
|
+
reexportInfo.name === /** @type {string[]} */ (reexport.export)[0]
|
112
|
+
) {
|
113
|
+
shouldContinue = true;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
if (shouldContinue) continue;
|
119
|
+
|
120
|
+
const webpackExportsProperty = exportInfo.getUsedName(
|
121
|
+
exportInfo.name,
|
122
|
+
chunk.runtime
|
123
|
+
);
|
124
|
+
const finalName =
|
125
|
+
definitions[
|
126
|
+
/** @type {string} */
|
127
|
+
(webpackExportsProperty)
|
128
|
+
];
|
129
|
+
exports.push(
|
130
|
+
finalName === exportInfo.name
|
131
|
+
? finalName
|
132
|
+
: `${finalName} as ${exportInfo.name}`
|
133
|
+
);
|
134
|
+
}
|
135
|
+
|
136
|
+
if (exports.length > 0) {
|
137
|
+
result.add(`export { ${exports.join(", ")} };\n`);
|
138
|
+
}
|
139
|
+
|
140
|
+
return result;
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
module.exports = ModernModuleLibraryPlugin;
|
@@ -58,8 +58,9 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
|
|
58
58
|
`Library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
59
59
|
);
|
60
60
|
}
|
61
|
+
const _name = /** @type {string} */ (name);
|
61
62
|
return {
|
62
|
-
name:
|
63
|
+
name: _name
|
63
64
|
};
|
64
65
|
}
|
65
66
|
|
@@ -58,8 +58,9 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin {
|
|
58
58
|
`System.js library name must be a simple string or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}`
|
59
59
|
);
|
60
60
|
}
|
61
|
+
const _name = /** @type {string} */ (name);
|
61
62
|
return {
|
62
|
-
name:
|
63
|
+
name: _name
|
63
64
|
};
|
64
65
|
}
|
65
66
|
|
@@ -30,9 +30,8 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
|
|
30
30
|
* @param {string[]} accessor the accessor to convert to path
|
31
31
|
* @returns {string} the path
|
32
32
|
*/
|
33
|
-
const accessorToObjectAccess = accessor =>
|
34
|
-
|
35
|
-
};
|
33
|
+
const accessorToObjectAccess = accessor =>
|
34
|
+
accessor.map(a => `[${JSON.stringify(a)}]`).join("");
|
36
35
|
|
37
36
|
/**
|
38
37
|
* @param {string|undefined} base the path prefix
|
@@ -157,18 +156,17 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
157
156
|
* @param {string} str the string to replace
|
158
157
|
* @returns {string} the replaced keys
|
159
158
|
*/
|
160
|
-
const replaceKeys = str =>
|
161
|
-
|
159
|
+
const replaceKeys = str =>
|
160
|
+
compilation.getPath(str, {
|
162
161
|
chunk
|
163
162
|
});
|
164
|
-
};
|
165
163
|
|
166
164
|
/**
|
167
165
|
* @param {ExternalModule[]} modules external modules
|
168
166
|
* @returns {string} result
|
169
167
|
*/
|
170
|
-
const externalsDepsArray = modules =>
|
171
|
-
|
168
|
+
const externalsDepsArray = modules =>
|
169
|
+
`[${replaceKeys(
|
172
170
|
modules
|
173
171
|
.map(m =>
|
174
172
|
JSON.stringify(
|
@@ -180,14 +178,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
180
178
|
)
|
181
179
|
.join(", ")
|
182
180
|
)}]`;
|
183
|
-
};
|
184
181
|
|
185
182
|
/**
|
186
183
|
* @param {ExternalModule[]} modules external modules
|
187
184
|
* @returns {string} result
|
188
185
|
*/
|
189
|
-
const externalsRootArray = modules =>
|
190
|
-
|
186
|
+
const externalsRootArray = modules =>
|
187
|
+
replaceKeys(
|
191
188
|
modules
|
192
189
|
.map(m => {
|
193
190
|
let request = m.request;
|
@@ -199,14 +196,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
199
196
|
})
|
200
197
|
.join(", ")
|
201
198
|
);
|
202
|
-
};
|
203
199
|
|
204
200
|
/**
|
205
201
|
* @param {string} type the type
|
206
202
|
* @returns {string} external require array
|
207
203
|
*/
|
208
|
-
const externalsRequireArray = type =>
|
209
|
-
|
204
|
+
const externalsRequireArray = type =>
|
205
|
+
replaceKeys(
|
210
206
|
externals
|
211
207
|
.map(m => {
|
212
208
|
let expr;
|
@@ -218,16 +214,14 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
218
214
|
}
|
219
215
|
if (request === undefined) {
|
220
216
|
throw new Error(
|
221
|
-
|
217
|
+
`Missing external configuration for type:${type}`
|
222
218
|
);
|
223
219
|
}
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
expr = `require(${JSON.stringify(request)})`;
|
230
|
-
}
|
220
|
+
expr = Array.isArray(request)
|
221
|
+
? `require(${JSON.stringify(
|
222
|
+
request[0]
|
223
|
+
)})${accessorToObjectAccess(request.slice(1))}`
|
224
|
+
: `require(${JSON.stringify(request)})`;
|
231
225
|
if (m.isOptional(moduleGraph)) {
|
232
226
|
expr = `(function webpackLoadOptionalExternalModule() { try { return ${expr}; } catch(e) {} }())`;
|
233
227
|
}
|
@@ -235,14 +229,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
235
229
|
})
|
236
230
|
.join(", ")
|
237
231
|
);
|
238
|
-
};
|
239
232
|
|
240
233
|
/**
|
241
234
|
* @param {ExternalModule[]} modules external modules
|
242
235
|
* @returns {string} arguments
|
243
236
|
*/
|
244
|
-
const externalsArguments = modules =>
|
245
|
-
|
237
|
+
const externalsArguments = modules =>
|
238
|
+
modules
|
246
239
|
.map(
|
247
240
|
m =>
|
248
241
|
`__WEBPACK_EXTERNAL_MODULE_${Template.toIdentifier(
|
@@ -250,26 +243,24 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
250
243
|
)}__`
|
251
244
|
)
|
252
245
|
.join(", ");
|
253
|
-
};
|
254
246
|
|
255
247
|
/**
|
256
248
|
* @param {string| string[]} library library name
|
257
249
|
* @returns {string} stringified library name
|
258
250
|
*/
|
259
|
-
const libraryName = library =>
|
260
|
-
|
251
|
+
const libraryName = library =>
|
252
|
+
JSON.stringify(
|
261
253
|
replaceKeys(/** @type {string[]} */ ([]).concat(library).pop())
|
262
254
|
);
|
263
|
-
};
|
264
255
|
|
265
256
|
let amdFactory;
|
266
257
|
if (optionalExternals.length > 0) {
|
267
258
|
const wrapperArguments = externalsArguments(requiredExternals);
|
268
259
|
const factoryArguments =
|
269
260
|
requiredExternals.length > 0
|
270
|
-
? externalsArguments(requiredExternals)
|
271
|
-
|
272
|
-
|
261
|
+
? `${externalsArguments(requiredExternals)}, ${externalsRootArray(
|
262
|
+
optionalExternals
|
263
|
+
)}`
|
273
264
|
: externalsRootArray(optionalExternals);
|
274
265
|
amdFactory =
|
275
266
|
`function webpackLoadOptionalExternalModuleAmd(${wrapperArguments}) {\n` +
|
@@ -288,72 +279,55 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin {
|
|
288
279
|
const getAuxiliaryComment = type => {
|
289
280
|
if (auxiliaryComment) {
|
290
281
|
if (typeof auxiliaryComment === "string")
|
291
|
-
return
|
292
|
-
if (auxiliaryComment[type])
|
293
|
-
return "\t//" + auxiliaryComment[type] + "\n";
|
282
|
+
return `\t//${auxiliaryComment}\n`;
|
283
|
+
if (auxiliaryComment[type]) return `\t//${auxiliaryComment[type]}\n`;
|
294
284
|
}
|
295
285
|
return "";
|
296
286
|
};
|
297
287
|
|
298
288
|
return new ConcatSource(
|
299
289
|
new OriginalSource(
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
externalsDepsArray(requiredExternals)
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
libraryName(
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
accessorAccess("root", names.root || names.commonjs)
|
342
|
-
) +
|
343
|
-
" = factory(" +
|
344
|
-
externalsRootArray(externals) +
|
345
|
-
");\n"
|
346
|
-
: " else {\n" +
|
347
|
-
(externals.length > 0
|
348
|
-
? " var a = typeof exports === 'object' ? factory(" +
|
349
|
-
externalsRequireArray("commonjs") +
|
350
|
-
") : factory(" +
|
351
|
-
externalsRootArray(externals) +
|
352
|
-
");\n"
|
353
|
-
: " var a = factory();\n") +
|
354
|
-
" for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n" +
|
355
|
-
" }\n") +
|
356
|
-
`})(${runtimeTemplate.outputOptions.globalObject}, ${
|
290
|
+
`(function webpackUniversalModuleDefinition(root, factory) {\n${getAuxiliaryComment(
|
291
|
+
"commonjs2"
|
292
|
+
)} if(typeof exports === 'object' && typeof module === 'object')\n` +
|
293
|
+
` module.exports = factory(${externalsRequireArray(
|
294
|
+
"commonjs2"
|
295
|
+
)});\n${getAuxiliaryComment(
|
296
|
+
"amd"
|
297
|
+
)} else if(typeof define === 'function' && define.amd)\n${
|
298
|
+
requiredExternals.length > 0
|
299
|
+
? names.amd && namedDefine === true
|
300
|
+
? ` define(${libraryName(names.amd)}, ${externalsDepsArray(
|
301
|
+
requiredExternals
|
302
|
+
)}, ${amdFactory});\n`
|
303
|
+
: ` define(${externalsDepsArray(requiredExternals)}, ${
|
304
|
+
amdFactory
|
305
|
+
});\n`
|
306
|
+
: names.amd && namedDefine === true
|
307
|
+
? ` define(${libraryName(names.amd)}, [], ${amdFactory});\n`
|
308
|
+
: ` define([], ${amdFactory});\n`
|
309
|
+
}${
|
310
|
+
names.root || names.commonjs
|
311
|
+
? `${getAuxiliaryComment(
|
312
|
+
"commonjs"
|
313
|
+
)} else if(typeof exports === 'object')\n` +
|
314
|
+
` exports[${libraryName(
|
315
|
+
names.commonjs || names.root
|
316
|
+
)}] = factory(${externalsRequireArray(
|
317
|
+
"commonjs"
|
318
|
+
)});\n${getAuxiliaryComment("root")} else\n` +
|
319
|
+
` ${replaceKeys(
|
320
|
+
accessorAccess("root", names.root || names.commonjs)
|
321
|
+
)} = factory(${externalsRootArray(externals)});\n`
|
322
|
+
: ` else {\n${
|
323
|
+
externals.length > 0
|
324
|
+
? ` var a = typeof exports === 'object' ? factory(${externalsRequireArray(
|
325
|
+
"commonjs"
|
326
|
+
)}) : factory(${externalsRootArray(externals)});\n`
|
327
|
+
: " var a = factory();\n"
|
328
|
+
} for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n` +
|
329
|
+
" }\n"
|
330
|
+
}})(${runtimeTemplate.outputOptions.globalObject}, ${
|
357
331
|
runtimeTemplate.supportsArrowFunction()
|
358
332
|
? `(${externalsArguments(externals)}) =>`
|
359
333
|
: `function(${externalsArguments(externals)})`
|
package/lib/logging/Logger.js
CHANGED
@@ -27,7 +27,7 @@ const LogType = Object.freeze({
|
|
27
27
|
status: /** @type {"status"} */ ("status") // message, arguments
|
28
28
|
});
|
29
29
|
|
30
|
-
exports.LogType = LogType;
|
30
|
+
module.exports.LogType = LogType;
|
31
31
|
|
32
32
|
/** @typedef {typeof LogType[keyof typeof LogType]} LogTypeEnum */
|
33
33
|
|
@@ -45,26 +45,45 @@ class WebpackLogger {
|
|
45
45
|
this.getChildLogger = getChildLogger;
|
46
46
|
}
|
47
47
|
|
48
|
+
/**
|
49
|
+
* @param {...any} args args
|
50
|
+
*/
|
48
51
|
error(...args) {
|
49
52
|
this[LOG_SYMBOL](LogType.error, args);
|
50
53
|
}
|
51
54
|
|
55
|
+
/**
|
56
|
+
* @param {...any} args args
|
57
|
+
*/
|
52
58
|
warn(...args) {
|
53
59
|
this[LOG_SYMBOL](LogType.warn, args);
|
54
60
|
}
|
55
61
|
|
62
|
+
/**
|
63
|
+
* @param {...any} args args
|
64
|
+
*/
|
56
65
|
info(...args) {
|
57
66
|
this[LOG_SYMBOL](LogType.info, args);
|
58
67
|
}
|
59
68
|
|
69
|
+
/**
|
70
|
+
* @param {...any} args args
|
71
|
+
*/
|
60
72
|
log(...args) {
|
61
73
|
this[LOG_SYMBOL](LogType.log, args);
|
62
74
|
}
|
63
75
|
|
76
|
+
/**
|
77
|
+
* @param {...any} args args
|
78
|
+
*/
|
64
79
|
debug(...args) {
|
65
80
|
this[LOG_SYMBOL](LogType.debug, args);
|
66
81
|
}
|
67
82
|
|
83
|
+
/**
|
84
|
+
* @param {any} assertion assertion
|
85
|
+
* @param {...any} args args
|
86
|
+
*/
|
68
87
|
assert(assertion, ...args) {
|
69
88
|
if (!assertion) {
|
70
89
|
this[LOG_SYMBOL](LogType.error, args);
|
@@ -79,20 +98,29 @@ class WebpackLogger {
|
|
79
98
|
this[LOG_SYMBOL](LogType.clear);
|
80
99
|
}
|
81
100
|
|
101
|
+
/**
|
102
|
+
* @param {...any} args args
|
103
|
+
*/
|
82
104
|
status(...args) {
|
83
105
|
this[LOG_SYMBOL](LogType.status, args);
|
84
106
|
}
|
85
107
|
|
108
|
+
/**
|
109
|
+
* @param {...any} args args
|
110
|
+
*/
|
86
111
|
group(...args) {
|
87
112
|
this[LOG_SYMBOL](LogType.group, args);
|
88
113
|
}
|
89
114
|
|
115
|
+
/**
|
116
|
+
* @param {...any} args args
|
117
|
+
*/
|
90
118
|
groupCollapsed(...args) {
|
91
119
|
this[LOG_SYMBOL](LogType.groupCollapsed, args);
|
92
120
|
}
|
93
121
|
|
94
|
-
groupEnd(
|
95
|
-
this[LOG_SYMBOL](LogType.groupEnd
|
122
|
+
groupEnd() {
|
123
|
+
this[LOG_SYMBOL](LogType.groupEnd);
|
96
124
|
}
|
97
125
|
|
98
126
|
/**
|
@@ -185,4 +213,4 @@ class WebpackLogger {
|
|
185
213
|
}
|
186
214
|
}
|
187
215
|
|
188
|
-
exports.Logger = WebpackLogger;
|
216
|
+
module.exports.Logger = WebpackLogger;
|
@@ -12,7 +12,7 @@ const { LogType } = require("./Logger");
|
|
12
12
|
/** @typedef {import("./Logger").LogTypeEnum} LogTypeEnum */
|
13
13
|
|
14
14
|
/** @typedef {function(string): boolean} FilterFunction */
|
15
|
-
/** @typedef {function(string, LogTypeEnum, any[]): void} LoggingFunction */
|
15
|
+
/** @typedef {function(string, LogTypeEnum, any[]=): void} LoggingFunction */
|
16
16
|
|
17
17
|
/**
|
18
18
|
* @typedef {object} LoggerConsole
|
@@ -95,7 +95,7 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
95
95
|
/**
|
96
96
|
* @param {string} name name of the logger
|
97
97
|
* @param {LogTypeEnum} type type of the log entry
|
98
|
-
* @param {any[]} args arguments of the log entry
|
98
|
+
* @param {any[]=} args arguments of the log entry
|
99
99
|
* @returns {void}
|
100
100
|
*/
|
101
101
|
const logger = (name, type, args) => {
|
@@ -103,12 +103,10 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
103
103
|
if (Array.isArray(args)) {
|
104
104
|
if (args.length > 0 && typeof args[0] === "string") {
|
105
105
|
return [`[${name}] ${args[0]}`, ...args.slice(1)];
|
106
|
-
} else {
|
107
|
-
return [`[${name}]`, ...args];
|
108
106
|
}
|
109
|
-
|
110
|
-
return [];
|
107
|
+
return [`[${name}]`, ...args];
|
111
108
|
}
|
109
|
+
return [];
|
112
110
|
};
|
113
111
|
const debug = debugFilters.some(f => f(name));
|
114
112
|
switch (type) {
|
@@ -167,8 +165,11 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
167
165
|
break;
|
168
166
|
case LogType.time: {
|
169
167
|
if (!debug && loglevel > LogLevel.log) return;
|
170
|
-
const
|
171
|
-
|
168
|
+
const [label, start, end] =
|
169
|
+
/** @type {[string, number, number]} */
|
170
|
+
(args);
|
171
|
+
const ms = start * 1000 + end / 1000000;
|
172
|
+
const msg = `[${name}] ${label}: ${ms} ms`;
|
172
173
|
if (typeof console.logTime === "function") {
|
173
174
|
console.logTime(msg);
|
174
175
|
} else {
|
@@ -195,15 +196,13 @@ module.exports = ({ level = "info", debug = false, console }) => {
|
|
195
196
|
case LogType.status:
|
196
197
|
if (!debug && loglevel > LogLevel.info) return;
|
197
198
|
if (typeof console.status === "function") {
|
198
|
-
if (args.length === 0) {
|
199
|
+
if (!args || args.length === 0) {
|
199
200
|
console.status();
|
200
201
|
} else {
|
201
202
|
console.status(...labeledArgs());
|
202
203
|
}
|
203
|
-
} else {
|
204
|
-
|
205
|
-
console.info(...labeledArgs());
|
206
|
-
}
|
204
|
+
} else if (args && args.length !== 0) {
|
205
|
+
console.info(...labeledArgs());
|
207
206
|
}
|
208
207
|
break;
|
209
208
|
default:
|
package/lib/logging/runtime.js
CHANGED
@@ -10,7 +10,7 @@ const { Logger } = require("./Logger");
|
|
10
10
|
const createConsoleLogger = require("./createConsoleLogger");
|
11
11
|
|
12
12
|
/** @type {createConsoleLogger.LoggerOptions} */
|
13
|
-
|
13
|
+
const currentDefaultLoggerOptions = {
|
14
14
|
level: "info",
|
15
15
|
debug: false,
|
16
16
|
console
|
@@ -21,26 +21,25 @@ let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
|
21
21
|
* @param {string} name name of the logger
|
22
22
|
* @returns {Logger} a logger
|
23
23
|
*/
|
24
|
-
exports.getLogger = name =>
|
25
|
-
|
24
|
+
module.exports.getLogger = name =>
|
25
|
+
new Logger(
|
26
26
|
(type, args) => {
|
27
|
-
if (exports.hooks.log.call(name, type, args) === undefined) {
|
27
|
+
if (module.exports.hooks.log.call(name, type, args) === undefined) {
|
28
28
|
currentDefaultLogger(name, type, args);
|
29
29
|
}
|
30
30
|
},
|
31
|
-
childName => exports.getLogger(`${name}/${childName}`)
|
31
|
+
childName => module.exports.getLogger(`${name}/${childName}`)
|
32
32
|
);
|
33
|
-
};
|
34
33
|
|
35
34
|
/**
|
36
35
|
* @param {createConsoleLogger.LoggerOptions} options new options, merge with old options
|
37
36
|
* @returns {void}
|
38
37
|
*/
|
39
|
-
exports.configureDefaultLogger = options => {
|
38
|
+
module.exports.configureDefaultLogger = options => {
|
40
39
|
Object.assign(currentDefaultLoggerOptions, options);
|
41
40
|
currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions);
|
42
41
|
};
|
43
42
|
|
44
|
-
exports.hooks = {
|
43
|
+
module.exports.hooks = {
|
45
44
|
log: new SyncBailHook(["origin", "type", "args"])
|
46
45
|
};
|
@@ -28,17 +28,15 @@ const truncateArgs = (args, maxLength) => {
|
|
28
28
|
if (availableLength >= args[0].length) {
|
29
29
|
return args;
|
30
30
|
} else if (availableLength > 3) {
|
31
|
-
return [
|
32
|
-
} else {
|
33
|
-
return [args[0].slice(-availableLength)];
|
31
|
+
return [`...${args[0].slice(-availableLength + 3)}`];
|
34
32
|
}
|
33
|
+
return [args[0].slice(-availableLength)];
|
35
34
|
}
|
36
35
|
|
37
36
|
// Check if there is space for at least 4 chars per arg
|
38
37
|
if (availableLength < arraySum(lengths.map(i => Math.min(i, 6)))) {
|
39
38
|
// remove args
|
40
|
-
if (args.length > 1)
|
41
|
-
return truncateArgs(args.slice(0, args.length - 1), maxLength);
|
39
|
+
if (args.length > 1) return truncateArgs(args.slice(0, -1), maxLength);
|
42
40
|
return [];
|
43
41
|
}
|
44
42
|
|
@@ -74,12 +72,11 @@ const truncateArgs = (args, maxLength) => {
|
|
74
72
|
if (str.length === length) {
|
75
73
|
return str;
|
76
74
|
} else if (length > 5) {
|
77
|
-
return
|
75
|
+
return `...${str.slice(-length + 3)}`;
|
78
76
|
} else if (length > 0) {
|
79
77
|
return str.slice(-length);
|
80
|
-
} else {
|
81
|
-
return "";
|
82
78
|
}
|
79
|
+
return "";
|
83
80
|
});
|
84
81
|
};
|
85
82
|
|