webpack 5.93.0 → 5.95.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.
Files changed (344) hide show
  1. package/README.md +8 -5
  2. package/bin/webpack.js +6 -7
  3. package/hot/log.js +1 -2
  4. package/hot/only-dev-server.js +1 -1
  5. package/hot/poll.js +1 -1
  6. package/hot/signal.js +1 -1
  7. package/lib/APIPlugin.js +4 -3
  8. package/lib/AbstractMethodError.js +10 -5
  9. package/lib/AutomaticPrefetchPlugin.js +1 -1
  10. package/lib/BannerPlugin.js +12 -6
  11. package/lib/Cache.js +8 -10
  12. package/lib/CacheFacade.js +3 -3
  13. package/lib/CaseSensitiveModulesWarning.js +5 -7
  14. package/lib/Chunk.js +14 -11
  15. package/lib/ChunkGraph.js +58 -36
  16. package/lib/ChunkGroup.js +2 -3
  17. package/lib/ChunkTemplate.js +43 -0
  18. package/lib/CleanPlugin.js +10 -11
  19. package/lib/CodeGenerationResults.js +6 -5
  20. package/lib/CommentCompilationWarning.js +0 -1
  21. package/lib/Compilation.js +223 -191
  22. package/lib/Compiler.js +81 -82
  23. package/lib/ConcatenationScope.js +3 -6
  24. package/lib/ConditionalInitFragment.js +6 -7
  25. package/lib/ConstPlugin.js +7 -15
  26. package/lib/ContextExclusionPlugin.js +3 -3
  27. package/lib/ContextModule.js +33 -20
  28. package/lib/ContextModuleFactory.js +89 -44
  29. package/lib/ContextReplacementPlugin.js +10 -9
  30. package/lib/DefinePlugin.js +75 -68
  31. package/lib/DelegatedModule.js +7 -3
  32. package/lib/DelegatedModuleFactoryPlugin.js +36 -22
  33. package/lib/DelegatedPlugin.js +4 -0
  34. package/lib/DependenciesBlock.js +0 -1
  35. package/lib/Dependency.js +10 -14
  36. package/lib/DllEntryPlugin.js +4 -2
  37. package/lib/DllModuleFactory.js +1 -0
  38. package/lib/DllPlugin.js +9 -7
  39. package/lib/DllReferencePlugin.js +30 -15
  40. package/lib/EntryPlugin.js +1 -3
  41. package/lib/EnvironmentPlugin.js +6 -2
  42. package/lib/ErrorHelpers.js +11 -12
  43. package/lib/EvalDevToolModulePlugin.js +10 -12
  44. package/lib/EvalSourceMapDevToolPlugin.js +15 -13
  45. package/lib/ExportsInfo.js +185 -120
  46. package/lib/ExternalModule.js +41 -15
  47. package/lib/ExternalModuleFactoryPlugin.js +23 -10
  48. package/lib/FileSystemInfo.js +791 -422
  49. package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
  50. package/lib/FlagDependencyExportsPlugin.js +12 -11
  51. package/lib/FlagDependencyUsagePlugin.js +1 -1
  52. package/lib/Generator.js +2 -5
  53. package/lib/GraphHelpers.js +3 -2
  54. package/lib/HookWebpackError.js +8 -10
  55. package/lib/HotModuleReplacementPlugin.js +78 -64
  56. package/lib/IgnoreErrorModuleFactory.js +3 -3
  57. package/lib/IgnorePlugin.js +1 -3
  58. package/lib/IgnoreWarningsPlugin.js +6 -9
  59. package/lib/InitFragment.js +2 -3
  60. package/lib/LibManifestPlugin.js +4 -3
  61. package/lib/MainTemplate.js +72 -19
  62. package/lib/Module.js +25 -9
  63. package/lib/ModuleBuildError.js +4 -11
  64. package/lib/ModuleDependencyError.js +5 -5
  65. package/lib/ModuleDependencyWarning.js +5 -5
  66. package/lib/ModuleError.js +1 -5
  67. package/lib/ModuleFilenameHelpers.js +29 -46
  68. package/lib/ModuleGraph.js +7 -6
  69. package/lib/ModuleGraphConnection.js +6 -6
  70. package/lib/ModuleInfoHeaderPlugin.js +82 -30
  71. package/lib/ModuleParseError.js +8 -9
  72. package/lib/ModuleRestoreError.js +1 -1
  73. package/lib/ModuleStoreError.js +1 -1
  74. package/lib/ModuleTemplate.js +33 -1
  75. package/lib/ModuleTypeConstants.js +21 -22
  76. package/lib/ModuleWarning.js +1 -5
  77. package/lib/MultiCompiler.js +24 -26
  78. package/lib/MultiStats.js +73 -31
  79. package/lib/MultiWatching.js +1 -1
  80. package/lib/NormalModule.js +130 -69
  81. package/lib/NormalModuleFactory.js +53 -49
  82. package/lib/OptimizationStages.js +3 -3
  83. package/lib/ProgressPlugin.js +9 -9
  84. package/lib/ProvidePlugin.js +4 -4
  85. package/lib/RuntimeGlobals.js +71 -70
  86. package/lib/RuntimeModule.js +1 -1
  87. package/lib/RuntimePlugin.js +24 -12
  88. package/lib/RuntimeTemplate.js +40 -44
  89. package/lib/SizeFormatHelpers.js +2 -4
  90. package/lib/SourceMapDevToolPlugin.js +42 -34
  91. package/lib/Stats.js +5 -11
  92. package/lib/Template.js +18 -24
  93. package/lib/TemplatedPathPlugin.js +21 -13
  94. package/lib/WarnDeprecatedOptionPlugin.js +0 -1
  95. package/lib/WatchIgnorePlugin.js +26 -9
  96. package/lib/Watching.js +10 -5
  97. package/lib/WebpackOptionsApply.js +84 -62
  98. package/lib/asset/AssetGenerator.js +107 -42
  99. package/lib/asset/AssetModulesPlugin.js +29 -23
  100. package/lib/asset/AssetSourceGenerator.js +2 -7
  101. package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
  102. package/lib/buildChunkGraph.js +93 -81
  103. package/lib/cache/IdleFileCachePlugin.js +4 -4
  104. package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
  105. package/lib/cache/PackFileCacheStrategy.js +51 -50
  106. package/lib/cache/ResolverCachePlugin.js +6 -6
  107. package/lib/cache/mergeEtags.js +16 -21
  108. package/lib/cli.js +148 -104
  109. package/lib/config/browserslistTargetHandler.js +16 -13
  110. package/lib/config/defaults.js +32 -28
  111. package/lib/config/normalization.js +335 -344
  112. package/lib/config/target.js +42 -52
  113. package/lib/container/ContainerEntryModule.js +2 -2
  114. package/lib/container/ContainerPlugin.js +1 -1
  115. package/lib/container/RemoteRuntimeModule.js +11 -8
  116. package/lib/container/options.js +18 -4
  117. package/lib/css/CssExportsGenerator.js +26 -24
  118. package/lib/css/CssGenerator.js +9 -4
  119. package/lib/css/CssLoadingRuntimeModule.js +10 -10
  120. package/lib/css/CssModulesPlugin.js +127 -47
  121. package/lib/css/CssParser.js +20 -18
  122. package/lib/css/walkCssTokens.js +80 -95
  123. package/lib/debug/ProfilingPlugin.js +19 -20
  124. package/lib/dependencies/AMDDefineDependency.js +1 -1
  125. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
  126. package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
  127. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
  128. package/lib/dependencies/AMDRuntimeModules.js +2 -2
  129. package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
  130. package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
  131. package/lib/dependencies/CommonJsExportsDependency.js +0 -1
  132. package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
  133. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
  134. package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
  135. package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
  136. package/lib/dependencies/ConstDependency.js +1 -1
  137. package/lib/dependencies/ContextDependency.js +7 -2
  138. package/lib/dependencies/ContextDependencyHelpers.js +31 -34
  139. package/lib/dependencies/ContextElementDependency.js +35 -8
  140. package/lib/dependencies/CriticalDependencyWarning.js +1 -1
  141. package/lib/dependencies/CssExportDependency.js +7 -7
  142. package/lib/dependencies/CssImportDependency.js +0 -2
  143. package/lib/dependencies/CssLocalIdentifierDependency.js +3 -3
  144. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  145. package/lib/dependencies/CssUrlDependency.js +4 -5
  146. package/lib/dependencies/DynamicExports.js +5 -5
  147. package/lib/dependencies/ExportsInfoDependency.js +1 -2
  148. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
  149. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
  150. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
  151. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  152. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
  153. package/lib/dependencies/HarmonyExports.js +2 -2
  154. package/lib/dependencies/HarmonyImportDependency.js +2 -4
  155. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
  156. package/lib/dependencies/HarmonyImportSpecifierDependency.js +40 -15
  157. package/lib/dependencies/ImportDependency.js +1 -1
  158. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
  159. package/lib/dependencies/ImportMetaPlugin.js +11 -13
  160. package/lib/dependencies/ImportParserPlugin.js +39 -44
  161. package/lib/dependencies/JsonExportsDependency.js +22 -18
  162. package/lib/dependencies/LoaderPlugin.js +47 -36
  163. package/lib/dependencies/LocalModule.js +1 -1
  164. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  165. package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
  166. package/lib/dependencies/ProvidedDependency.js +1 -1
  167. package/lib/dependencies/PureExpressionDependency.js +6 -6
  168. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  169. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  170. package/lib/dependencies/SystemPlugin.js +1 -1
  171. package/lib/dependencies/URLDependency.js +3 -3
  172. package/lib/dependencies/URLPlugin.js +66 -12
  173. package/lib/dependencies/WorkerPlugin.js +25 -24
  174. package/lib/dependencies/processExportInfo.js +3 -1
  175. package/lib/electron/ElectronTargetPlugin.js +1 -0
  176. package/lib/esm/ModuleChunkFormatPlugin.js +3 -3
  177. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
  178. package/lib/formatLocation.js +1 -2
  179. package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
  180. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  181. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
  182. package/lib/hmr/LazyCompilationPlugin.js +27 -12
  183. package/lib/hmr/lazyCompilationBackend.js +64 -40
  184. package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
  185. package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
  186. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  187. package/lib/ids/HashedModuleIdsPlugin.js +5 -1
  188. package/lib/ids/IdHelpers.js +29 -39
  189. package/lib/ids/SyncModuleIdsPlugin.js +7 -2
  190. package/lib/index.js +1 -5
  191. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -4
  192. package/lib/javascript/BasicEvaluatedExpression.js +4 -19
  193. package/lib/javascript/ChunkHelpers.js +1 -1
  194. package/lib/javascript/CommonJsChunkFormatPlugin.js +3 -2
  195. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
  196. package/lib/javascript/JavascriptGenerator.js +23 -7
  197. package/lib/javascript/JavascriptModulesPlugin.js +133 -86
  198. package/lib/javascript/JavascriptParser.js +179 -200
  199. package/lib/javascript/JavascriptParserHelpers.js +20 -21
  200. package/lib/javascript/StartupHelpers.js +41 -13
  201. package/lib/json/JsonGenerator.js +7 -13
  202. package/lib/json/JsonModulesPlugin.js +1 -4
  203. package/lib/json/JsonParser.js +5 -3
  204. package/lib/library/AmdLibraryPlugin.js +12 -16
  205. package/lib/library/AssignLibraryPlugin.js +8 -10
  206. package/lib/library/EnableLibraryPlugin.js +15 -14
  207. package/lib/library/JsonpLibraryPlugin.js +2 -1
  208. package/lib/library/ModernModuleLibraryPlugin.js +8 -6
  209. package/lib/library/ModuleLibraryPlugin.js +2 -1
  210. package/lib/library/SystemLibraryPlugin.js +2 -1
  211. package/lib/library/UmdLibraryPlugin.js +66 -92
  212. package/lib/logging/Logger.js +32 -4
  213. package/lib/logging/createConsoleLogger.js +12 -13
  214. package/lib/logging/runtime.js +7 -8
  215. package/lib/logging/truncateArgs.js +5 -8
  216. package/lib/node/NodeWatchFileSystem.js +3 -18
  217. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
  218. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
  219. package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
  220. package/lib/node/nodeConsole.js +22 -22
  221. package/lib/optimize/AggressiveMergingPlugin.js +2 -4
  222. package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
  223. package/lib/optimize/ConcatenatedModule.js +81 -51
  224. package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
  225. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
  226. package/lib/optimize/InnerGraph.js +17 -17
  227. package/lib/optimize/InnerGraphPlugin.js +8 -7
  228. package/lib/optimize/LimitChunkCountPlugin.js +2 -3
  229. package/lib/optimize/MangleExportsPlugin.js +1 -0
  230. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -2
  231. package/lib/optimize/MinMaxSizeWarning.js +1 -1
  232. package/lib/optimize/ModuleConcatenationPlugin.js +54 -78
  233. package/lib/optimize/RealContentHashPlugin.js +7 -10
  234. package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
  235. package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
  236. package/lib/optimize/SplitChunksPlugin.js +34 -30
  237. package/lib/performance/SizeLimitsPlugin.js +2 -2
  238. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
  239. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
  240. package/lib/rules/BasicEffectRulePlugin.js +3 -1
  241. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  242. package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
  243. package/lib/rules/RuleSetCompiler.js +41 -22
  244. package/lib/rules/UseEffectRulePlugin.js +36 -32
  245. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  246. package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
  247. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  248. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
  249. package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
  250. package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
  251. package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
  252. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
  253. package/lib/schemes/DataUriPlugin.js +1 -1
  254. package/lib/schemes/HttpUriPlugin.js +241 -126
  255. package/lib/serialization/BinaryMiddleware.js +44 -28
  256. package/lib/serialization/DateObjectSerializer.js +1 -0
  257. package/lib/serialization/ErrorObjectSerializer.js +2 -0
  258. package/lib/serialization/FileMiddleware.js +154 -106
  259. package/lib/serialization/MapObjectSerializer.js +2 -1
  260. package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
  261. package/lib/serialization/ObjectMiddleware.js +52 -56
  262. package/lib/serialization/PlainObjectSerializer.js +32 -6
  263. package/lib/serialization/RegExpObjectSerializer.js +1 -0
  264. package/lib/serialization/Serializer.js +4 -5
  265. package/lib/serialization/SerializerMiddleware.js +6 -6
  266. package/lib/serialization/SetObjectSerializer.js +2 -1
  267. package/lib/sharing/ConsumeSharedPlugin.js +116 -97
  268. package/lib/sharing/ConsumeSharedRuntimeModule.js +4 -4
  269. package/lib/sharing/ProvideForSharedDependency.js +0 -1
  270. package/lib/sharing/ProvideSharedPlugin.js +2 -2
  271. package/lib/sharing/resolveMatchedConfigs.js +2 -1
  272. package/lib/sharing/utils.js +15 -27
  273. package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
  274. package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
  275. package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
  276. package/lib/stats/StatsFactory.js +127 -56
  277. package/lib/stats/StatsPrinter.js +75 -44
  278. package/lib/util/ArrayHelpers.js +8 -4
  279. package/lib/util/ArrayQueue.js +1 -1
  280. package/lib/util/AsyncQueue.js +31 -12
  281. package/lib/util/IterableHelpers.js +3 -4
  282. package/lib/util/LazyBucketSortedSet.js +60 -44
  283. package/lib/util/LazySet.js +13 -0
  284. package/lib/util/MapHelpers.js +1 -3
  285. package/lib/util/ParallelismFactorCalculator.js +1 -1
  286. package/lib/util/Queue.js +1 -1
  287. package/lib/util/Semaphore.js +4 -7
  288. package/lib/util/SetHelpers.js +5 -5
  289. package/lib/util/SortableSet.js +4 -3
  290. package/lib/util/StackedCacheMap.js +4 -6
  291. package/lib/util/StackedMap.js +1 -3
  292. package/lib/util/StringXor.js +0 -5
  293. package/lib/util/TupleQueue.js +1 -1
  294. package/lib/util/TupleSet.js +15 -5
  295. package/lib/util/URLAbsoluteSpecifier.js +7 -7
  296. package/lib/util/WeakTupleMap.js +19 -21
  297. package/lib/util/binarySearchBounds.js +5 -12
  298. package/lib/util/chainedImports.js +1 -1
  299. package/lib/util/cleverMerge.js +21 -19
  300. package/lib/util/comparators.js +57 -52
  301. package/lib/util/compileBooleanMatcher.js +3 -6
  302. package/lib/util/conventions.js +8 -11
  303. package/lib/util/createHash.js +9 -6
  304. package/lib/util/deprecation.js +22 -12
  305. package/lib/util/deterministicGrouping.js +19 -26
  306. package/lib/util/findGraphRoots.js +2 -2
  307. package/lib/util/fs.js +32 -32
  308. package/lib/util/hash/md4.js +2 -2
  309. package/lib/util/hash/wasm-hash.js +7 -7
  310. package/lib/util/hash/xxhash64.js +2 -2
  311. package/lib/util/identifier.js +81 -59
  312. package/lib/util/memoize.js +8 -10
  313. package/lib/util/mergeScope.js +6 -9
  314. package/lib/util/nonNumericOnlyHash.js +2 -2
  315. package/lib/util/numberHash.js +1 -6
  316. package/lib/util/objectToMap.js +0 -1
  317. package/lib/util/propertyAccess.js +2 -5
  318. package/lib/util/propertyName.js +1 -3
  319. package/lib/util/registerExternalSerializer.js +1 -1
  320. package/lib/util/runtime.js +109 -113
  321. package/lib/util/semver.js +29 -27
  322. package/lib/util/serialization.js +16 -1
  323. package/lib/util/smartGrouping.js +5 -5
  324. package/lib/util/source.js +1 -1
  325. package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
  326. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
  327. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
  328. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
  329. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
  330. package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
  331. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
  332. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  333. package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
  334. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
  335. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
  336. package/package.json +18 -17
  337. package/schemas/WebpackOptions.check.js +1 -1
  338. package/schemas/WebpackOptions.json +5 -0
  339. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  340. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  341. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  342. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  343. package/schemas/plugins/container/ModuleFederationPlugin.json +1 -0
  344. package/types.d.ts +681 -355
@@ -19,7 +19,7 @@ const truncateArgs = require("../logging/truncateArgs");
19
19
  */
20
20
  module.exports = ({ colors, appendOnly, stream }) => {
21
21
  /** @type {string[] | undefined} */
22
- let currentStatusMessage = undefined;
22
+ let currentStatusMessage;
23
23
  let hasStatusMessage = false;
24
24
  let currentIndent = "";
25
25
  let currentCollapsed = 0;
@@ -38,17 +38,17 @@ module.exports = ({ colors, appendOnly, stream }) => {
38
38
  return (
39
39
  prefix +
40
40
  colorPrefix +
41
- str.replace(/\n/g, colorSuffix + "\n" + prefix + colorPrefix) +
41
+ str.replace(/\n/g, `${colorSuffix}\n${prefix}${colorPrefix}`) +
42
42
  colorSuffix
43
43
  );
44
- } else {
45
- return prefix + str.replace(/\n/g, "\n" + prefix);
46
44
  }
45
+
46
+ return prefix + str.replace(/\n/g, `\n${prefix}`);
47
47
  };
48
48
 
49
49
  const clearStatusMessage = () => {
50
50
  if (hasStatusMessage) {
51
- stream.write("\x1b[2K\r");
51
+ stream.write("\u001B[2K\r");
52
52
  hasStatusMessage = false;
53
53
  }
54
54
  };
@@ -58,8 +58,8 @@ module.exports = ({ colors, appendOnly, stream }) => {
58
58
  const l = /** @type {TODO} */ (stream).columns || 40;
59
59
  const args = truncateArgs(currentStatusMessage, l - 1);
60
60
  const str = args.join(" ");
61
- const coloredStr = `\u001b[1m${str}\u001b[39m\u001b[22m`;
62
- stream.write(`\x1b[2K\r${coloredStr}`);
61
+ const coloredStr = `\u001B[1m${str}\u001B[39m\u001B[22m`;
62
+ stream.write(`\u001B[2K\r${coloredStr}`);
63
63
  hasStatusMessage = true;
64
64
  };
65
65
 
@@ -69,8 +69,9 @@ module.exports = ({ colors, appendOnly, stream }) => {
69
69
  * @param {string} colorSuffix color suffix
70
70
  * @returns {(function(...any[]): void)} function to write with colors
71
71
  */
72
- const writeColored = (prefix, colorPrefix, colorSuffix) => {
73
- return (...args) => {
72
+ const writeColored =
73
+ (prefix, colorPrefix, colorSuffix) =>
74
+ (...args) => {
74
75
  if (currentCollapsed > 0) return;
75
76
  clearStatusMessage();
76
77
  const str = indent(
@@ -79,34 +80,33 @@ module.exports = ({ colors, appendOnly, stream }) => {
79
80
  colorPrefix,
80
81
  colorSuffix
81
82
  );
82
- stream.write(str + "\n");
83
+ stream.write(`${str}\n`);
83
84
  writeStatusMessage();
84
85
  };
85
- };
86
86
 
87
87
  const writeGroupMessage = writeColored(
88
88
  "<-> ",
89
- "\u001b[1m\u001b[36m",
90
- "\u001b[39m\u001b[22m"
89
+ "\u001B[1m\u001B[36m",
90
+ "\u001B[39m\u001B[22m"
91
91
  );
92
92
 
93
93
  const writeGroupCollapsedMessage = writeColored(
94
94
  "<+> ",
95
- "\u001b[1m\u001b[36m",
96
- "\u001b[39m\u001b[22m"
95
+ "\u001B[1m\u001B[36m",
96
+ "\u001B[39m\u001B[22m"
97
97
  );
98
98
 
99
99
  return {
100
- log: writeColored(" ", "\u001b[1m", "\u001b[22m"),
100
+ log: writeColored(" ", "\u001B[1m", "\u001B[22m"),
101
101
  debug: writeColored(" ", "", ""),
102
102
  trace: writeColored(" ", "", ""),
103
- info: writeColored("<i> ", "\u001b[1m\u001b[32m", "\u001b[39m\u001b[22m"),
104
- warn: writeColored("<w> ", "\u001b[1m\u001b[33m", "\u001b[39m\u001b[22m"),
105
- error: writeColored("<e> ", "\u001b[1m\u001b[31m", "\u001b[39m\u001b[22m"),
103
+ info: writeColored("<i> ", "\u001B[1m\u001B[32m", "\u001B[39m\u001B[22m"),
104
+ warn: writeColored("<w> ", "\u001B[1m\u001B[33m", "\u001B[39m\u001B[22m"),
105
+ error: writeColored("<e> ", "\u001B[1m\u001B[31m", "\u001B[39m\u001B[22m"),
106
106
  logTime: writeColored(
107
107
  "<t> ",
108
- "\u001b[1m\u001b[35m",
109
- "\u001b[39m\u001b[22m"
108
+ "\u001B[1m\u001B[35m",
109
+ "\u001B[39m\u001B[22m"
110
110
  ),
111
111
  group: (...args) => {
112
112
  writeGroupMessage(...args);
@@ -123,7 +123,7 @@ module.exports = ({ colors, appendOnly, stream }) => {
123
123
  groupEnd: () => {
124
124
  if (currentCollapsed > 0) currentCollapsed--;
125
125
  else if (currentIndent.length >= 2)
126
- currentIndent = currentIndent.slice(0, currentIndent.length - 2);
126
+ currentIndent = currentIndent.slice(0, -2);
127
127
  },
128
128
  profile: console.profile && (name => console.profile(name)),
129
129
  profileEnd: console.profileEnd && (name => console.profileEnd(name)),
@@ -51,7 +51,7 @@ class AggressiveMergingPlugin {
51
51
  chunks => {
52
52
  const chunkGraph = compilation.chunkGraph;
53
53
  /** @type {{a: Chunk, b: Chunk, improvement: number}[]} */
54
- let combinations = [];
54
+ const combinations = [];
55
55
  for (const a of chunks) {
56
56
  if (a.canBeInitial()) continue;
57
57
  for (const b of chunks) {
@@ -78,9 +78,7 @@ class AggressiveMergingPlugin {
78
78
  }
79
79
  }
80
80
 
81
- combinations.sort((a, b) => {
82
- return b.improvement - a.improvement;
83
- });
81
+ combinations.sort((a, b) => b.improvement - a.improvement);
84
82
 
85
83
  const pair = combinations[0];
86
84
 
@@ -36,11 +36,9 @@ const validate = createSchemaValidation(
36
36
  * @param {Chunk} newChunk the new chunk
37
37
  * @returns {(module: Module) => void} function to move module between chunks
38
38
  */
39
- const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => {
40
- return module => {
41
- chunkGraph.disconnectChunkAndModule(oldChunk, module);
42
- chunkGraph.connectChunkAndModule(newChunk, module);
43
- };
39
+ const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => module => {
40
+ chunkGraph.disconnectChunkAndModule(oldChunk, module);
41
+ chunkGraph.connectChunkAndModule(newChunk, module);
44
42
  };
45
43
 
46
44
  /**
@@ -48,11 +46,8 @@ const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => {
48
46
  * @param {Chunk} chunk the chunk
49
47
  * @returns {function(Module): boolean} filter for entry module
50
48
  */
51
- const isNotAEntryModule = (chunkGraph, chunk) => {
52
- return module => {
53
- return !chunkGraph.isEntryModuleInChunk(module, chunk);
54
- };
55
- };
49
+ const isNotAEntryModule = (chunkGraph, chunk) => module =>
50
+ !chunkGraph.isEntryModuleInChunk(module, chunk);
56
51
 
57
52
  /** @type {WeakSet<Chunk>} */
58
53
  const recordedChunks = new WeakSet();
@@ -191,9 +186,9 @@ class AggressiveSplittingPlugin {
191
186
  const newChunk = compilation.addChunk();
192
187
  newChunk.chunkReason = "aggressive splitted";
193
188
  for (const chunk of selectedChunks) {
194
- selectedModules.forEach(
195
- moveModuleBetween(chunkGraph, chunk, newChunk)
196
- );
189
+ for (const module of selectedModules) {
190
+ moveModuleBetween(chunkGraph, chunk, newChunk)(module);
191
+ }
197
192
  chunk.split(newChunk);
198
193
  chunk.name = null;
199
194
  }
@@ -277,12 +272,14 @@ class AggressiveSplittingPlugin {
277
272
  // We remove invalid splittings and try again
278
273
  for (const chunk of compilation.chunks) {
279
274
  const splitData = chunkSplitDataMap.get(chunk);
280
- if (splitData !== undefined) {
281
- if (splitData.hash && chunk.hash !== splitData.hash) {
282
- // Split was successful, but hash doesn't equal
283
- // We can throw away the split since it's useless now
284
- invalidSplits.add(splitData);
285
- }
275
+ if (
276
+ splitData !== undefined &&
277
+ splitData.hash &&
278
+ chunk.hash !== splitData.hash
279
+ ) {
280
+ // Split was successful, but hash doesn't equal
281
+ // We can throw away the split since it's useless now
282
+ invalidSplits.add(splitData);
286
283
  }
287
284
  }
288
285
 
@@ -62,6 +62,7 @@ const {
62
62
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
63
63
  /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
64
64
  /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
65
+ /** @typedef {import("../ModuleParseError")} ModuleParseError */
65
66
  /** @typedef {import("../RequestShortener")} RequestShortener */
66
67
  /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
67
68
  /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
@@ -128,12 +129,12 @@ if (!ReferencerClass.prototype.PropertyDefinition) {
128
129
  * @property {Module} module
129
130
  * @property {number} index
130
131
  * @property {Program | undefined} ast
131
- * @property {Source} internalSource
132
+ * @property {Source | undefined} internalSource
132
133
  * @property {ReplaceSource} source
133
134
  * @property {InitFragment<ChunkRenderContext>[]=} chunkInitFragments
134
- * @property {ReadOnlyRuntimeRequirements} runtimeRequirements
135
- * @property {Scope} globalScope
136
- * @property {Scope} moduleScope
135
+ * @property {ReadOnlyRuntimeRequirements | undefined} runtimeRequirements
136
+ * @property {Scope | undefined} globalScope
137
+ * @property {Scope | undefined} moduleScope
137
138
  * @property {Map<string, string>} internalNames
138
139
  * @property {Map<string, string> | undefined} exportMap
139
140
  * @property {Map<string, string> | undefined} rawExportMap
@@ -153,13 +154,13 @@ if (!ReferencerClass.prototype.PropertyDefinition) {
153
154
  * @property {Module} module
154
155
  * @property {RuntimeSpec | boolean} runtimeCondition
155
156
  * @property {number} index
156
- * @property {string} name
157
+ * @property {string | undefined} name
157
158
  * @property {boolean} interopNamespaceObjectUsed
158
- * @property {string} interopNamespaceObjectName
159
+ * @property {string | undefined} interopNamespaceObjectName
159
160
  * @property {boolean} interopNamespaceObject2Used
160
- * @property {string} interopNamespaceObject2Name
161
+ * @property {string | undefined} interopNamespaceObject2Name
161
162
  * @property {boolean} interopDefaultAccessUsed
162
- * @property {string} interopDefaultAccessName
163
+ * @property {string | undefined} interopDefaultAccessName
163
164
  */
164
165
 
165
166
  /**
@@ -209,8 +210,17 @@ const RESERVED_NAMES = new Set(
209
210
  .split(",")
210
211
  );
211
212
 
213
+ /**
214
+ * @template T
215
+ * @param {string} property property
216
+ * @param {function(T[keyof T], T[keyof T]): 0 | 1 | -1} comparator comparator
217
+ * @returns {Comparator<T>} comparator
218
+ */
212
219
  const createComparator = (property, comparator) => (a, b) =>
213
- comparator(a[property], b[property]);
220
+ comparator(
221
+ a[/** @type {keyof T} */ (property)],
222
+ b[/** @type {keyof T} */ (property)]
223
+ );
214
224
 
215
225
  /**
216
226
  * @param {number} a a
@@ -218,12 +228,12 @@ const createComparator = (property, comparator) => (a, b) =>
218
228
  * @returns {0 | 1 | -1} result
219
229
  */
220
230
  const compareNumbers = (a, b) => {
221
- if (isNaN(a)) {
222
- if (!isNaN(b)) {
231
+ if (Number.isNaN(a)) {
232
+ if (!Number.isNaN(b)) {
223
233
  return 1;
224
234
  }
225
235
  } else {
226
- if (isNaN(b)) {
236
+ if (Number.isNaN(b)) {
227
237
  return -1;
228
238
  }
229
239
  if (a !== b) {
@@ -397,12 +407,21 @@ const getFinalBinding = (
397
407
  neededNamespaceObjects.add(info);
398
408
  return {
399
409
  info,
400
- rawName: /** @type {string} */ (info.namespaceObjectName),
410
+ rawName:
411
+ /** @type {NonNullable<ConcatenatedModuleInfo["namespaceObjectName"]>} */
412
+ (info.namespaceObjectName),
401
413
  ids: exportName,
402
414
  exportName
403
415
  };
404
416
  case "external":
405
- return { info, rawName: info.name, ids: exportName, exportName };
417
+ return {
418
+ info,
419
+ rawName:
420
+ /** @type {NonNullable<ExternalModuleInfo["name"]>} */
421
+ (info.name),
422
+ ids: exportName,
423
+ exportName
424
+ };
406
425
  }
407
426
  }
408
427
  const exportsInfo = moduleGraph.getExportsInfo(info.module);
@@ -631,7 +650,7 @@ const TYPES = new Set(["javascript"]);
631
650
 
632
651
  /**
633
652
  * @typedef {object} ConcatenateModuleHooks
634
- * @property {SyncBailHook<[Record<string, string>]>} exportsDefinitions
653
+ * @property {SyncBailHook<[Record<string, string>], boolean>} exportsDefinitions
635
654
  */
636
655
 
637
656
  /** @type {WeakMap<Compilation, ConcatenateModuleHooks>} */
@@ -743,10 +762,9 @@ class ConcatenatedModule extends Module {
743
762
  * @returns {string} a user readable identifier of the module
744
763
  */
745
764
  readableIdentifier(requestShortener) {
746
- return (
747
- this.rootModule.readableIdentifier(requestShortener) +
748
- ` + ${this._modules.size - 1} modules`
749
- );
765
+ return `${this.rootModule.readableIdentifier(
766
+ requestShortener
767
+ )} + ${this._modules.size - 1} modules`;
750
768
  }
751
769
 
752
770
  /**
@@ -857,7 +875,14 @@ class ConcatenatedModule extends Module {
857
875
  if (this.buildInfo.assets === undefined) {
858
876
  this.buildInfo.assets = Object.create(null);
859
877
  }
860
- Object.assign(/** @type {BuildInfo} */ (this.buildInfo).assets, assets);
878
+ Object.assign(
879
+ /** @type {NonNullable<BuildInfo["assets"]>} */
880
+ (
881
+ /** @type {BuildInfo} */
882
+ (this.buildInfo).assets
883
+ ),
884
+ assets
885
+ );
861
886
  }
862
887
  if (assetsInfo) {
863
888
  if (this.buildInfo.assetsInfo === undefined) {
@@ -903,7 +928,9 @@ class ConcatenatedModule extends Module {
903
928
  * @returns {Iterable<{ connection: ModuleGraphConnection, runtimeCondition: RuntimeSpec | true }>} imported modules in order
904
929
  */
905
930
  const getConcatenatedImports = module => {
906
- let connections = Array.from(moduleGraph.getOutgoingConnections(module));
931
+ const connections = Array.from(
932
+ moduleGraph.getOutgoingConnections(module)
933
+ );
907
934
  if (module === rootModule) {
908
935
  for (const c of moduleGraph.getOutgoingConnections(this))
909
936
  connections.push(c);
@@ -1077,14 +1104,14 @@ class ConcatenatedModule extends Module {
1077
1104
  /** @type {string} */ (rootModule.context),
1078
1105
  associatedObjectForCache
1079
1106
  );
1080
- let identifiers = [];
1107
+ const identifiers = [];
1081
1108
  for (const module of modules) {
1082
1109
  identifiers.push(cachedMakePathsRelative(module.identifier()));
1083
1110
  }
1084
1111
  identifiers.sort();
1085
1112
  const hash = createHash(hashFunction);
1086
1113
  hash.update(identifiers.join(" "));
1087
- return rootModule.identifier() + "|" + hash.digest("hex");
1114
+ return `${rootModule.identifier()}|${hash.digest("hex")}`;
1088
1115
  }
1089
1116
 
1090
1117
  /**
@@ -1313,7 +1340,11 @@ class ConcatenatedModule extends Module {
1313
1340
  );
1314
1341
  for (const identifier of allIdentifiers) {
1315
1342
  const r = /** @type {Range} */ (identifier.range);
1316
- const path = getPathInAst(info.ast, identifier);
1343
+ const path = getPathInAst(
1344
+ /** @type {NonNullable<ConcatenatedModuleInfo["ast"]>} */
1345
+ (info.ast),
1346
+ identifier
1347
+ );
1317
1348
  if (path && path.length > 1) {
1318
1349
  const maybeProperty =
1319
1350
  path[1].type === "AssignmentPattern" &&
@@ -1411,7 +1442,8 @@ class ConcatenatedModule extends Module {
1411
1442
  // Find and replace references to modules
1412
1443
  for (const info of moduleToInfoMap.values()) {
1413
1444
  if (info.type === "concatenated") {
1414
- for (const reference of info.globalScope.through) {
1445
+ const globalScope = /** @type {Scope} */ (info.globalScope);
1446
+ for (const reference of globalScope.through) {
1415
1447
  const name = reference.identifier.name;
1416
1448
  const match = ConcatenationScope.matchModuleReference(name);
1417
1449
  if (match) {
@@ -1487,11 +1519,11 @@ class ConcatenatedModule extends Module {
1487
1519
  return `/* ${
1488
1520
  exportInfo.isReexport() ? "reexport" : "binding"
1489
1521
  } */ ${finalName}`;
1490
- } catch (e) {
1522
+ } catch (err) {
1491
1523
  /** @type {Error} */
1492
- (e).message +=
1524
+ (err).message +=
1493
1525
  `\nwhile generating the root export '${name}' (used name: '${used}')`;
1494
- throw e;
1526
+ throw err;
1495
1527
  }
1496
1528
  });
1497
1529
  }
@@ -1510,7 +1542,7 @@ class ConcatenatedModule extends Module {
1510
1542
  // define exports
1511
1543
  if (exportsMap.size > 0) {
1512
1544
  const { exportsDefinitions } = ConcatenatedModule.getCompilationHooks(
1513
- this.compilation
1545
+ /** @type {Compilation} */ (this.compilation)
1514
1546
  );
1515
1547
 
1516
1548
  const definitions = [];
@@ -1529,7 +1561,7 @@ class ConcatenatedModule extends Module {
1529
1561
  runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
1530
1562
 
1531
1563
  if (shouldAddHarmonyFlag) {
1532
- result.add(`// ESM COMPAT FLAG\n`);
1564
+ result.add("// ESM COMPAT FLAG\n");
1533
1565
  result.add(
1534
1566
  runtimeTemplate.defineEsModuleFlagStatement({
1535
1567
  exportsArgument: this.exportsArgument,
@@ -1538,14 +1570,15 @@ class ConcatenatedModule extends Module {
1538
1570
  );
1539
1571
  }
1540
1572
 
1541
- result.add(`\n// EXPORTS\n`);
1573
+ result.add("\n// EXPORTS\n");
1542
1574
  result.add(
1543
1575
  `${RuntimeGlobals.definePropertyGetters}(${
1544
1576
  this.exportsArgument
1545
1577
  }, {${definitions.join(",")}\n});\n`
1546
1578
  );
1547
1579
  } else {
1548
- this.buildMeta.exportsFinalName = exportsFinalName;
1580
+ /** @type {BuildMeta} */
1581
+ (this.buildMeta).exportsFinalName = exportsFinalName;
1549
1582
  }
1550
1583
  }
1551
1584
 
@@ -1627,9 +1660,7 @@ ${defineGetters}`
1627
1660
  switch (info.type) {
1628
1661
  case "concatenated": {
1629
1662
  result.add(
1630
- `\n;// CONCATENATED MODULE: ${info.module.readableIdentifier(
1631
- requestShortener
1632
- )}\n`
1663
+ `\n;// ${info.module.readableIdentifier(requestShortener)}\n`
1633
1664
  );
1634
1665
  result.add(info.source);
1635
1666
  if (info.chunkInitFragments) {
@@ -1760,7 +1791,8 @@ ${defineGetters}`
1760
1791
  ast = JavascriptParser._parse(code, {
1761
1792
  sourceType: "module"
1762
1793
  });
1763
- } catch (err) {
1794
+ } catch (_err) {
1795
+ const err = /** @type {TODO} */ (_err);
1764
1796
  if (
1765
1797
  err.loc &&
1766
1798
  typeof err.loc === "object" &&
@@ -1768,11 +1800,9 @@ ${defineGetters}`
1768
1800
  ) {
1769
1801
  const lineNumber = err.loc.line;
1770
1802
  const lines = code.split("\n");
1771
- err.message +=
1772
- "\n| " +
1773
- lines
1774
- .slice(Math.max(0, lineNumber - 3), lineNumber + 2)
1775
- .join("\n| ");
1803
+ err.message += `\n| ${lines
1804
+ .slice(Math.max(0, lineNumber - 3), lineNumber + 2)
1805
+ .join("\n| ")}`;
1776
1806
  }
1777
1807
  throw err;
1778
1808
  }
@@ -1868,16 +1898,15 @@ ${defineGetters}`
1868
1898
  /** @type {ModuleInfo} */ (item).module,
1869
1899
  /** @type {ModuleInfo} */ (item)
1870
1900
  );
1871
- return item;
1872
- } else {
1873
- /** @type {ReferenceToModuleInfo} */
1874
- const ref = {
1875
- type: "reference",
1876
- runtimeCondition: info.runtimeCondition,
1877
- target: item
1878
- };
1879
- return ref;
1901
+ return /** @type {ModuleInfo} */ (item);
1880
1902
  }
1903
+ /** @type {ReferenceToModuleInfo} */
1904
+ const ref = {
1905
+ type: "reference",
1906
+ runtimeCondition: info.runtimeCondition,
1907
+ target: item
1908
+ };
1909
+ return ref;
1881
1910
  });
1882
1911
  return [list, map];
1883
1912
  }
@@ -1907,7 +1936,7 @@ ${defineGetters}`
1907
1936
 
1908
1937
  const splittedInfo = extraInfo.split("/");
1909
1938
  while (splittedInfo.length) {
1910
- name = splittedInfo.pop() + (name ? "_" + name : "");
1939
+ name = splittedInfo.pop() + (name ? `_${name}` : "");
1911
1940
  const nameIdent = Template.toIdentifier(name);
1912
1941
  if (
1913
1942
  !usedNamed1.has(nameIdent) &&
@@ -1920,6 +1949,7 @@ ${defineGetters}`
1920
1949
  let nameWithNumber = Template.toIdentifier(`${name}_${i}`);
1921
1950
  while (
1922
1951
  usedNamed1.has(nameWithNumber) ||
1952
+ // eslint-disable-next-line no-unmodified-loop-condition
1923
1953
  (usedNamed2 && usedNamed2.has(nameWithNumber))
1924
1954
  ) {
1925
1955
  i++;
@@ -56,7 +56,7 @@ class EnsureChunkConditionsPlugin {
56
56
  // We reached the entrypoint: fail
57
57
  if (chunkGroup.isInitial()) {
58
58
  throw new Error(
59
- "Cannot fulfil chunk condition of " + module.identifier()
59
+ `Cannot fulfil chunk condition of ${module.identifier()}`
60
60
  );
61
61
  }
62
62
  // Try placing in all parents
@@ -39,10 +39,10 @@ class FlagIncludedChunksPlugin {
39
39
  const modulesCount = compilation.modules.size;
40
40
 
41
41
  // precalculate the modulo values for each bit
42
- const modulo = 1 / Math.pow(1 / modulesCount, 1 / 31);
42
+ const modulo = 1 / (1 / modulesCount) ** (1 / 31);
43
43
  const modulos = Array.from(
44
44
  { length: 31 },
45
- (x, i) => Math.pow(modulo, i) | 0
45
+ (x, i) => (modulo ** i) | 0
46
46
  );
47
47
 
48
48
  // iterate all modules to generate bit values
@@ -74,7 +74,7 @@ class FlagIncludedChunksPlugin {
74
74
  const chunkAModulesCount =
75
75
  chunkGraph.getNumberOfChunkModules(chunkA);
76
76
  if (chunkAModulesCount === 0) continue;
77
- let bestModule = undefined;
77
+ let bestModule;
78
78
  for (const module of chunkGraph.getChunkModulesIterable(chunkA)) {
79
79
  if (
80
80
  bestModule === undefined ||
@@ -45,7 +45,7 @@ function getState(parserState) {
45
45
  * @param {ParserState} parserState parser state
46
46
  * @returns {void}
47
47
  */
48
- exports.bailout = parserState => {
48
+ module.exports.bailout = parserState => {
49
49
  parserStateMap.set(parserState, false);
50
50
  };
51
51
 
@@ -53,7 +53,7 @@ exports.bailout = parserState => {
53
53
  * @param {ParserState} parserState parser state
54
54
  * @returns {void}
55
55
  */
56
- exports.enable = parserState => {
56
+ module.exports.enable = parserState => {
57
57
  const state = parserStateMap.get(parserState);
58
58
  if (state === false) {
59
59
  return;
@@ -69,9 +69,9 @@ exports.enable = parserState => {
69
69
  * @param {ParserState} parserState parser state
70
70
  * @returns {boolean} true, when enabled
71
71
  */
72
- exports.isEnabled = parserState => {
72
+ module.exports.isEnabled = parserState => {
73
73
  const state = parserStateMap.get(parserState);
74
- return !!state;
74
+ return Boolean(state);
75
75
  };
76
76
 
77
77
  /**
@@ -80,7 +80,7 @@ exports.isEnabled = parserState => {
80
80
  * @param {string | TopLevelSymbol | true} usage usage data
81
81
  * @returns {void}
82
82
  */
83
- exports.addUsage = (state, symbol, usage) => {
83
+ module.exports.addUsage = (state, symbol, usage) => {
84
84
  const innerGraphState = getState(state);
85
85
 
86
86
  if (innerGraphState) {
@@ -102,13 +102,13 @@ exports.addUsage = (state, symbol, usage) => {
102
102
  * @param {string | TopLevelSymbol | true} usage usage data
103
103
  * @returns {void}
104
104
  */
105
- exports.addVariableUsage = (parser, name, usage) => {
105
+ module.exports.addVariableUsage = (parser, name, usage) => {
106
106
  const symbol =
107
107
  /** @type {TopLevelSymbol} */ (
108
108
  parser.getTagData(name, topLevelSymbolTag)
109
- ) || exports.tagTopLevelSymbol(parser, name);
109
+ ) || module.exports.tagTopLevelSymbol(parser, name);
110
110
  if (symbol) {
111
- exports.addUsage(parser.state, symbol, usage);
111
+ module.exports.addUsage(parser.state, symbol, usage);
112
112
  }
113
113
  };
114
114
 
@@ -116,7 +116,7 @@ exports.addVariableUsage = (parser, name, usage) => {
116
116
  * @param {ParserState} state parser state
117
117
  * @returns {void}
118
118
  */
119
- exports.inferDependencyUsage = state => {
119
+ module.exports.inferDependencyUsage = state => {
120
120
  const innerGraphState = getState(state);
121
121
 
122
122
  if (!innerGraphState) {
@@ -212,7 +212,7 @@ exports.inferDependencyUsage = state => {
212
212
  * @param {ParserState} state parser state
213
213
  * @param {UsageCallback} onUsageCallback on usage callback
214
214
  */
215
- exports.onUsage = (state, onUsageCallback) => {
215
+ module.exports.onUsage = (state, onUsageCallback) => {
216
216
  const innerGraphState = getState(state);
217
217
 
218
218
  if (innerGraphState) {
@@ -238,7 +238,7 @@ exports.onUsage = (state, onUsageCallback) => {
238
238
  * @param {ParserState} state parser state
239
239
  * @param {TopLevelSymbol | undefined} symbol the symbol
240
240
  */
241
- exports.setTopLevelSymbol = (state, symbol) => {
241
+ module.exports.setTopLevelSymbol = (state, symbol) => {
242
242
  const innerGraphState = getState(state);
243
243
 
244
244
  if (innerGraphState) {
@@ -250,7 +250,7 @@ exports.setTopLevelSymbol = (state, symbol) => {
250
250
  * @param {ParserState} state parser state
251
251
  * @returns {TopLevelSymbol|void} usage data
252
252
  */
253
- exports.getTopLevelSymbol = state => {
253
+ module.exports.getTopLevelSymbol = state => {
254
254
  const innerGraphState = getState(state);
255
255
 
256
256
  if (innerGraphState) {
@@ -263,7 +263,7 @@ exports.getTopLevelSymbol = state => {
263
263
  * @param {string} name name of variable
264
264
  * @returns {TopLevelSymbol | undefined} symbol
265
265
  */
266
- exports.tagTopLevelSymbol = (parser, name) => {
266
+ module.exports.tagTopLevelSymbol = (parser, name) => {
267
267
  const innerGraphState = getState(parser.state);
268
268
  if (!innerGraphState) return;
269
269
 
@@ -288,7 +288,7 @@ exports.tagTopLevelSymbol = (parser, name) => {
288
288
  * @param {RuntimeSpec} runtime runtime
289
289
  * @returns {boolean} false, when unused. Otherwise true
290
290
  */
291
- exports.isDependencyUsedByExports = (
291
+ module.exports.isDependencyUsedByExports = (
292
292
  dependency,
293
293
  usedByExports,
294
294
  moduleGraph,
@@ -316,7 +316,7 @@ exports.isDependencyUsedByExports = (
316
316
  * @param {ModuleGraph} moduleGraph moduleGraph
317
317
  * @returns {null | false | function(ModuleGraphConnection, RuntimeSpec): ConnectionState} function to determine if the connection is active
318
318
  */
319
- exports.getDependencyUsedByExportsCondition = (
319
+ module.exports.getDependencyUsedByExportsCondition = (
320
320
  dependency,
321
321
  usedByExports,
322
322
  moduleGraph
@@ -347,5 +347,5 @@ class TopLevelSymbol {
347
347
  }
348
348
  }
349
349
 
350
- exports.TopLevelSymbol = TopLevelSymbol;
351
- exports.topLevelSymbolTag = topLevelSymbolTag;
350
+ module.exports.TopLevelSymbol = TopLevelSymbol;
351
+ module.exports.topLevelSymbolTag = topLevelSymbolTag;
@@ -109,13 +109,14 @@ class InnerGraphPlugin {
109
109
  parser.hooks.preStatement.tap(PLUGIN_NAME, statement => {
110
110
  if (!InnerGraph.isEnabled(parser.state)) return;
111
111
 
112
- if (parser.scope.topLevelScope === true) {
113
- if (statement.type === "FunctionDeclaration") {
114
- const name = statement.id ? statement.id.name : "*default*";
115
- const fn = InnerGraph.tagTopLevelSymbol(parser, name);
116
- statementWithTopLevelSymbol.set(statement, fn);
117
- return true;
118
- }
112
+ if (
113
+ parser.scope.topLevelScope === true &&
114
+ statement.type === "FunctionDeclaration"
115
+ ) {
116
+ const name = statement.id ? statement.id.name : "*default*";
117
+ const fn = InnerGraph.tagTopLevelSymbol(parser, name);
118
+ statementWithTopLevelSymbol.set(statement, fn);
119
+ return true;
119
120
  }
120
121
  });
121
122