@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.6

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 (261) hide show
  1. package/CHANGELOG.md +619 -0
  2. package/bin/modern.js +3 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +48 -18
  5. package/dist/js/modern/analyze/generateCode.js +264 -225
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
  8. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  9. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  10. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  11. package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
  12. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  13. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  14. package/dist/js/modern/analyze/index.js +204 -161
  15. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  16. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  17. package/dist/js/modern/analyze/nestedRoutes.js +118 -65
  18. package/dist/js/modern/analyze/templates.js +170 -81
  19. package/dist/js/modern/analyze/utils.js +104 -67
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
  21. package/dist/js/modern/builder/index.js +120 -89
  22. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  24. package/dist/js/modern/builder/share.js +23 -21
  25. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  26. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  27. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
  28. package/dist/js/modern/commands/build.js +67 -42
  29. package/dist/js/modern/commands/deploy.js +27 -4
  30. package/dist/js/modern/commands/dev.js +81 -34
  31. package/dist/js/modern/commands/index.js +1 -1
  32. package/dist/js/modern/commands/inspect.js +30 -5
  33. package/dist/js/modern/commands/serve.js +54 -0
  34. package/dist/js/modern/config/default.js +112 -145
  35. package/dist/js/modern/config/index.js +8 -2
  36. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  37. package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
  38. package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
  39. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  40. package/dist/js/modern/config/initial/index.js +9 -4
  41. package/dist/js/modern/config/initial/inits.js +109 -73
  42. package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
  43. package/dist/js/modern/defineConfig.js +26 -11
  44. package/dist/js/modern/exports/server.js +4 -1
  45. package/dist/js/modern/hooks.js +16 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +100 -52
  48. package/dist/js/modern/locale/en.js +20 -21
  49. package/dist/js/modern/locale/index.js +6 -6
  50. package/dist/js/modern/locale/zh.js +21 -22
  51. package/dist/js/modern/schema/Schema.js +6 -5
  52. package/dist/js/modern/schema/index.js +53 -100
  53. package/dist/js/modern/schema/legacy.js +96 -231
  54. package/dist/js/modern/types/config/index.js +0 -1
  55. package/dist/js/modern/types/index.js +0 -1
  56. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  57. package/dist/js/modern/utils/commands.js +10 -2
  58. package/dist/js/modern/utils/config.js +102 -41
  59. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  60. package/dist/js/modern/utils/createServer.js +63 -17
  61. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  62. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  63. package/dist/js/modern/utils/language.js +6 -3
  64. package/dist/js/modern/utils/printInstructions.js +27 -8
  65. package/dist/js/modern/utils/restart.js +43 -16
  66. package/dist/js/modern/utils/routes.js +29 -12
  67. package/dist/js/node/analyze/Builder.js +64 -0
  68. package/dist/js/node/analyze/constants.js +86 -39
  69. package/dist/js/node/analyze/generateCode.js +285 -239
  70. package/dist/js/node/analyze/getBundleEntry.js +62 -44
  71. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
  72. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
  73. package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
  74. package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
  75. package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
  76. package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
  77. package/dist/js/node/analyze/getServerRoutes.js +145 -137
  78. package/dist/js/node/analyze/index.js +233 -174
  79. package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
  80. package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
  81. package/dist/js/node/analyze/nestedRoutes.js +150 -79
  82. package/dist/js/node/analyze/templates.js +198 -90
  83. package/dist/js/node/analyze/utils.js +136 -81
  84. package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
  85. package/dist/js/node/builder/index.js +142 -98
  86. package/dist/js/node/builder/loaders/routerLoader.js +29 -18
  87. package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
  88. package/dist/js/node/builder/share.js +50 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
  90. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
  91. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
  92. package/dist/js/node/commands/build.js +91 -52
  93. package/dist/js/node/commands/deploy.js +49 -10
  94. package/dist/js/node/commands/dev.js +105 -48
  95. package/dist/js/node/commands/index.js +19 -38
  96. package/dist/js/node/commands/inspect.js +52 -11
  97. package/dist/js/node/commands/serve.js +83 -0
  98. package/dist/js/node/config/default.js +131 -149
  99. package/dist/js/node/config/index.js +31 -28
  100. package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
  101. package/dist/js/node/config/initial/createOutputConfig.js +31 -17
  102. package/dist/js/node/config/initial/createSourceConfig.js +31 -7
  103. package/dist/js/node/config/initial/createToolsConfig.js +28 -10
  104. package/dist/js/node/config/initial/index.js +34 -17
  105. package/dist/js/node/config/initial/inits.js +130 -81
  106. package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
  107. package/dist/js/node/defineConfig.js +46 -17
  108. package/dist/js/node/exports/server.js +25 -10
  109. package/dist/js/node/hooks.js +53 -29
  110. package/dist/js/node/index.js +213 -129
  111. package/dist/js/node/initialize/index.js +117 -61
  112. package/dist/js/node/locale/en.js +40 -25
  113. package/dist/js/node/locale/index.js +31 -14
  114. package/dist/js/node/locale/zh.js +41 -26
  115. package/dist/js/node/schema/Schema.js +27 -10
  116. package/dist/js/node/schema/index.js +84 -114
  117. package/dist/js/node/schema/legacy.js +119 -240
  118. package/dist/js/node/types/config/deploy.js +15 -0
  119. package/dist/js/node/types/config/dev.js +15 -0
  120. package/dist/js/node/types/config/experiments.js +15 -0
  121. package/dist/js/node/types/config/html.js +15 -0
  122. package/dist/js/node/types/config/index.js +17 -16
  123. package/dist/js/node/types/config/output.js +15 -0
  124. package/dist/js/node/types/config/performance.js +15 -0
  125. package/dist/js/node/types/config/security.js +15 -0
  126. package/dist/js/node/types/config/source.js +15 -0
  127. package/dist/js/node/types/config/tools.js +15 -0
  128. package/dist/js/node/types/hooks.js +15 -0
  129. package/dist/js/node/types/index.js +19 -38
  130. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  131. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  132. package/dist/js/node/types/legacyConfig/index.js +15 -0
  133. package/dist/js/node/types/legacyConfig/output.js +15 -5
  134. package/dist/js/node/types/legacyConfig/source.js +15 -0
  135. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  136. package/dist/js/node/utils/commands.js +31 -6
  137. package/dist/js/node/utils/config.js +125 -51
  138. package/dist/js/node/utils/createFileWatcher.js +109 -61
  139. package/dist/js/node/utils/createServer.js +92 -25
  140. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  141. package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
  142. package/dist/js/node/utils/language.js +28 -8
  143. package/dist/js/node/utils/printInstructions.js +51 -16
  144. package/dist/js/node/utils/restart.js +65 -21
  145. package/dist/js/node/utils/routes.js +58 -19
  146. package/dist/js/node/utils/types.js +15 -0
  147. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  148. package/dist/js/treeshaking/analyze/constants.js +37 -18
  149. package/dist/js/treeshaking/analyze/generateCode.js +597 -407
  150. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  151. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
  152. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  153. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  154. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  155. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
  156. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  157. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  158. package/dist/js/treeshaking/analyze/index.js +575 -305
  159. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  160. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  161. package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
  162. package/dist/js/treeshaking/analyze/templates.js +438 -236
  163. package/dist/js/treeshaking/analyze/utils.js +367 -153
  164. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
  165. package/dist/js/treeshaking/builder/index.js +365 -165
  166. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  167. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  168. package/dist/js/treeshaking/builder/share.js +38 -44
  169. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  170. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  171. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  172. package/dist/js/treeshaking/commands/build.js +286 -88
  173. package/dist/js/treeshaking/commands/deploy.js +153 -25
  174. package/dist/js/treeshaking/commands/dev.js +313 -131
  175. package/dist/js/treeshaking/commands/index.js +1 -1
  176. package/dist/js/treeshaking/commands/inspect.js +147 -32
  177. package/dist/js/treeshaking/commands/serve.js +199 -0
  178. package/dist/js/treeshaking/config/default.js +207 -198
  179. package/dist/js/treeshaking/config/index.js +3 -2
  180. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  181. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
  182. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
  183. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  184. package/dist/js/treeshaking/config/initial/index.js +10 -9
  185. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  186. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
  187. package/dist/js/treeshaking/defineConfig.js +60 -13
  188. package/dist/js/treeshaking/exports/server.js +2 -1
  189. package/dist/js/treeshaking/hooks.js +31 -25
  190. package/dist/js/treeshaking/index.js +681 -256
  191. package/dist/js/treeshaking/initialize/index.js +292 -113
  192. package/dist/js/treeshaking/locale/en.js +34 -33
  193. package/dist/js/treeshaking/locale/index.js +5 -5
  194. package/dist/js/treeshaking/locale/zh.js +34 -33
  195. package/dist/js/treeshaking/schema/Schema.js +267 -69
  196. package/dist/js/treeshaking/schema/index.js +171 -121
  197. package/dist/js/treeshaking/schema/legacy.js +323 -256
  198. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  199. package/dist/js/treeshaking/types/config/dev.js +1 -0
  200. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  201. package/dist/js/treeshaking/types/config/html.js +1 -0
  202. package/dist/js/treeshaking/types/config/index.js +0 -1
  203. package/dist/js/treeshaking/types/config/output.js +1 -0
  204. package/dist/js/treeshaking/types/config/performance.js +1 -0
  205. package/dist/js/treeshaking/types/config/security.js +1 -0
  206. package/dist/js/treeshaking/types/config/source.js +1 -0
  207. package/dist/js/treeshaking/types/config/tools.js +1 -0
  208. package/dist/js/treeshaking/types/hooks.js +1 -0
  209. package/dist/js/treeshaking/types/index.js +0 -1
  210. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  211. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  212. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  213. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  214. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  215. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  216. package/dist/js/treeshaking/utils/commands.js +10 -5
  217. package/dist/js/treeshaking/utils/config.js +295 -117
  218. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  219. package/dist/js/treeshaking/utils/createServer.js +252 -67
  220. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  221. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  222. package/dist/js/treeshaking/utils/language.js +6 -5
  223. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  224. package/dist/js/treeshaking/utils/restart.js +184 -42
  225. package/dist/js/treeshaking/utils/routes.js +151 -27
  226. package/dist/js/treeshaking/utils/types.js +1 -0
  227. package/dist/types/analyze/Builder.d.ts +8 -0
  228. package/dist/types/analyze/constants.d.ts +10 -1
  229. package/dist/types/analyze/index.d.ts +2 -0
  230. package/dist/types/analyze/templates.d.ts +3 -1
  231. package/dist/types/analyze/utils.d.ts +2 -1
  232. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  233. package/dist/types/builder/index.d.ts +3 -3
  234. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  235. package/dist/types/commands/index.d.ts +1 -1
  236. package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
  237. package/dist/types/defineConfig.d.ts +1 -0
  238. package/dist/types/index.d.ts +7 -1
  239. package/dist/types/initialize/index.d.ts +2 -0
  240. package/dist/types/locale/en.d.ts +1 -1
  241. package/dist/types/locale/index.d.ts +2 -2
  242. package/dist/types/locale/zh.d.ts +1 -1
  243. package/dist/types/types/config/dev.d.ts +2 -2
  244. package/dist/types/types/config/index.d.ts +4 -0
  245. package/dist/types/types/config/output.d.ts +0 -1
  246. package/dist/types/types/config/source.d.ts +2 -0
  247. package/dist/types/types/config/tools.d.ts +2 -0
  248. package/dist/types/types/hooks.d.ts +8 -0
  249. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  250. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  251. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  252. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  253. package/dist/types/utils/commands.d.ts +2 -1
  254. package/dist/types/utils/config.d.ts +1 -0
  255. package/dist/types/utils/createServer.d.ts +1 -0
  256. package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
  257. package/dist/types/utils/restart.d.ts +1 -1
  258. package/package.json +26 -22
  259. package/dist/js/modern/commands/start.js +0 -30
  260. package/dist/js/node/commands/start.js +0 -38
  261. package/dist/js/treeshaking/commands/start.js +0 -69
@@ -1,25 +1,71 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var __async = (__this, __arguments, generator) => {
25
+ return new Promise((resolve, reject) => {
26
+ var fulfilled = (value) => {
27
+ try {
28
+ step(generator.next(value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ };
33
+ var rejected = (value) => {
34
+ try {
35
+ step(generator.throw(value));
36
+ } catch (e) {
37
+ reject(e);
38
+ }
39
+ };
40
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
+ step((generator = generator.apply(__this, __arguments)).next());
42
+ });
43
+ };
44
+ var utils_exports = {};
45
+ __export(utils_exports, {
46
+ getDefaultImports: () => getDefaultImports,
47
+ hasLoader: () => hasLoader,
48
+ isNestedRouteComponent: () => isNestedRouteComponent,
49
+ isPageComponentFile: () => isPageComponentFile,
50
+ parseModule: () => parseModule,
51
+ replaceWithAlias: () => replaceWithAlias,
52
+ walkDirectory: () => walkDirectory
5
53
  });
6
- exports.walkDirectory = exports.replaceWithAlias = exports.parseModule = exports.isRouteComponentFile = exports.hasLoader = exports.getDefaultImports = void 0;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
9
- var _utils = require("@modern-js/utils");
10
- var _esbuild = require("esbuild");
11
- var _esModuleLexer = require("es-module-lexer");
12
- var _constants = require("./constants");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- const walkDirectory = dir => _fs.default.readdirSync(dir).reduce((previous, filename) => {
15
- const filePath = _path.default.join(dir, filename);
16
- if (_fs.default.statSync(filePath).isDirectory()) {
54
+ module.exports = __toCommonJS(utils_exports);
55
+ var import_fs = __toESM(require("fs"));
56
+ var import_path = __toESM(require("path"));
57
+ var import_utils = require("@modern-js/utils");
58
+ var import_esbuild = require("esbuild");
59
+ var import_es_module_lexer = require("es-module-lexer");
60
+ var import_constants = require("./constants");
61
+ const walkDirectory = (dir) => import_fs.default.readdirSync(dir).reduce((previous, filename) => {
62
+ const filePath = import_path.default.join(dir, filename);
63
+ if (import_fs.default.statSync(filePath).isDirectory()) {
17
64
  return [...previous, ...walkDirectory(filePath)];
18
65
  } else {
19
66
  return [...previous, filePath];
20
67
  }
21
68
  }, []);
22
- exports.walkDirectory = walkDirectory;
23
69
  const getDefaultImports = ({
24
70
  entrypoint,
25
71
  srcDirectory,
@@ -27,99 +73,108 @@ const getDefaultImports = ({
27
73
  internalDirAlias,
28
74
  internalDirectory
29
75
  }) => {
30
- const {
31
- entryName,
32
- fileSystemRoutes,
33
- customBootstrap,
34
- entry
35
- } = entrypoint;
36
- const imports = [{
37
- specifiers: [{
38
- local: 'React'
39
- }],
40
- value: 'react'
41
- }, {
42
- specifiers: [{
43
- local: 'ReactDOM'
44
- }],
45
- value: (0, _utils.isReact18)(_path.default.join(internalDirectory, '../../')) ? 'react-dom/client' : 'react-dom'
46
- }, {
47
- specifiers: [{
48
- imported: 'createApp'
49
- }, {
50
- imported: 'bootstrap'
51
- }],
52
- value: '@modern-js/runtime'
53
- }, customBootstrap && {
54
- specifiers: [{
55
- local: 'customBootstrap'
56
- }],
57
- value: (0, _utils.normalizeToPosixPath)(customBootstrap.replace(srcDirectory, internalSrcAlias))
58
- }].filter(Boolean);
76
+ const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
77
+ const imports = [
78
+ {
79
+ specifiers: [{ local: "React" }],
80
+ value: "react"
81
+ },
82
+ {
83
+ specifiers: [{ local: "ReactDOM" }],
84
+ value: (0, import_utils.isReact18)(import_path.default.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
85
+ },
86
+ {
87
+ specifiers: [{ imported: "createApp" }, { imported: "bootstrap" }],
88
+ value: "@modern-js/runtime"
89
+ },
90
+ customBootstrap && {
91
+ specifiers: [{ local: "customBootstrap" }],
92
+ value: (0, import_utils.normalizeToPosixPath)(
93
+ customBootstrap.replace(srcDirectory, internalSrcAlias)
94
+ )
95
+ }
96
+ ].filter(Boolean);
59
97
  if (fileSystemRoutes) {
60
98
  const route = {
61
- specifiers: [{
62
- imported: 'routes'
63
- }],
64
- value: (0, _utils.normalizeToPosixPath)(`${internalDirAlias}/${entryName}/${_constants.FILE_SYSTEM_ROUTES_FILE_NAME.replace('.js', '')}`)
99
+ specifiers: [{ imported: "routes" }],
100
+ value: (0, import_utils.normalizeToPosixPath)(
101
+ `${internalDirAlias}/${entryName}/${import_constants.FILE_SYSTEM_ROUTES_FILE_NAME.replace(
102
+ ".js",
103
+ ""
104
+ )}`
105
+ )
65
106
  };
66
107
  if (fileSystemRoutes.globalApp) {
67
108
  imports.push({
68
- specifiers: [{
69
- local: 'App'
70
- }],
71
- value: (0, _utils.normalizeToPosixPath)(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
109
+ specifiers: [{ local: "App" }],
110
+ value: (0, import_utils.normalizeToPosixPath)(
111
+ fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias)
112
+ )
72
113
  });
73
114
  } else {
74
- route.initialize = 'const App = false;';
115
+ route.initialize = "const App = false;";
75
116
  }
76
117
  imports.push(route);
77
118
  } else {
78
119
  imports.push({
79
- specifiers: [{
80
- local: 'App'
81
- }],
82
- value: (0, _utils.normalizeToPosixPath)(entry.replace(srcDirectory, internalSrcAlias))
120
+ specifiers: [{ local: "App" }],
121
+ value: (0, import_utils.normalizeToPosixPath)(
122
+ entry.replace(srcDirectory, internalSrcAlias)
123
+ )
83
124
  });
84
125
  }
85
126
  return imports;
86
127
  };
87
- exports.getDefaultImports = getDefaultImports;
88
- const isRouteComponentFile = filePath => {
128
+ const isPageComponentFile = (filePath) => {
89
129
  if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
90
130
  return false;
91
131
  }
92
- if (['.js', '.jsx', '.ts', '.tsx'].includes(_path.default.extname(filePath))) {
132
+ if ([".js", ".jsx", ".ts", ".tsx"].includes(import_path.default.extname(filePath))) {
93
133
  return true;
94
134
  }
95
135
  return false;
96
136
  };
97
- exports.isRouteComponentFile = isRouteComponentFile;
98
- const replaceWithAlias = (base, filePath, alias) => (0, _utils.normalizeToPosixPath)(_path.default.join(alias, _path.default.relative(base, filePath)));
99
- exports.replaceWithAlias = replaceWithAlias;
100
- const parseModule = async ({
137
+ const isNestedRouteComponent = (nestedRouteEntries, absoluteFilePath) => {
138
+ const reg = new RegExp(
139
+ `(${import_constants.NESTED_ROUTE.LAYOUT_FILE}|${import_constants.NESTED_ROUTE.PAGE_FILE}})\\.tsx?$`
140
+ );
141
+ return nestedRouteEntries.some((nestedRoutesEntry) => {
142
+ if (absoluteFilePath.includes(nestedRoutesEntry) && reg.test(absoluteFilePath)) {
143
+ return true;
144
+ }
145
+ return false;
146
+ });
147
+ };
148
+ const replaceWithAlias = (base, filePath, alias) => (0, import_utils.normalizeToPosixPath)(import_path.default.join(alias, import_path.default.relative(base, filePath)));
149
+ const parseModule = (_0) => __async(void 0, [_0], function* ({
101
150
  source,
102
151
  filename
103
- }) => {
152
+ }) {
104
153
  let content = source;
105
- if (filename.endsWith('.tsx') || filename.endsWith('.jsx')) {
106
- const result = await (0, _esbuild.transform)(content, {
107
- loader: _path.default.extname(filename).slice(1),
108
- format: 'esm'
154
+ if (filename.endsWith(".tsx") || filename.endsWith(".jsx")) {
155
+ const result = yield (0, import_esbuild.transform)(content, {
156
+ loader: import_path.default.extname(filename).slice(1),
157
+ format: "esm"
109
158
  });
110
159
  content = result.code;
111
160
  }
112
-
113
- // eslint-disable-next-line @typescript-eslint/await-thenable
114
- return await (0, _esModuleLexer.parse)(content);
115
- };
116
- exports.parseModule = parseModule;
117
- const hasLoader = async filename => {
118
- const source = await _utils.fs.readFile(filename);
119
- const [, moduleExports] = await parseModule({
161
+ return yield (0, import_es_module_lexer.parse)(content);
162
+ });
163
+ const hasLoader = (filename) => __async(void 0, null, function* () {
164
+ const source = yield import_utils.fs.readFile(filename);
165
+ const [, moduleExports] = yield parseModule({
120
166
  source: source.toString(),
121
167
  filename
122
168
  });
123
- return moduleExports.some(e => e.n === _constants.LOADER_EXPORT_NAME);
124
- };
125
- exports.hasLoader = hasLoader;
169
+ return moduleExports.some((e) => e.n === import_constants.LOADER_EXPORT_NAME);
170
+ });
171
+ // Annotate the CommonJS export names for ESM import in node:
172
+ 0 && (module.exports = {
173
+ getDefaultImports,
174
+ hasLoader,
175
+ isNestedRouteComponent,
176
+ isPageComponentFile,
177
+ parseModule,
178
+ replaceWithAlias,
179
+ walkDirectory
180
+ });
@@ -1,56 +1,82 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var compatModern_exports = {};
42
+ __export(compatModern_exports, {
43
+ PluginCompatModern: () => PluginCompatModern
5
44
  });
6
- exports.PluginCompatModern = void 0;
7
- var _path = require("path");
8
- var _builderShared = require("@modern-js/builder-shared");
9
- var _lodash = require("@modern-js/utils/lodash");
10
- var _htmlWebpackPlugin = _interopRequireDefault(require("@modern-js/builder-webpack-provider/html-webpack-plugin"));
11
- var _utils = require("@modern-js/utils");
12
- var _htmlBottomTemplate = require("../webpackPlugins/htmlBottomTemplate");
13
- var _htmlAsyncChunkPlugin = require("../webpackPlugins/htmlAsyncChunkPlugin");
14
- var _share = require("../share");
15
- var _routerPlugin = _interopRequireDefault(require("../webpackPlugins/routerPlugin"));
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- /**
21
- * Provides default configuration consistent with `@modern-js/webpack`
22
- */
45
+ module.exports = __toCommonJS(compatModern_exports);
46
+ var import_path = require("path");
47
+ var import_builder_shared = require("@modern-js/builder-shared");
48
+ var import_lodash = require("@modern-js/utils/lodash");
49
+ var import_html_webpack_plugin = __toESM(require("@modern-js/builder-webpack-provider/html-webpack-plugin"));
50
+ var import_utils = require("@modern-js/utils");
51
+ var import_htmlBottomTemplate = require("../webpackPlugins/htmlBottomTemplate");
52
+ var import_htmlAsyncChunkPlugin = require("../webpackPlugins/htmlAsyncChunkPlugin");
53
+ var import_share = require("../share");
54
+ var import_routerPlugin = __toESM(require("../webpackPlugins/routerPlugin"));
23
55
  const PluginCompatModern = (appContext, modernConfig, options) => ({
24
- name: 'builder-plugin-compat-modern',
56
+ name: "builder-plugin-compat-modern",
25
57
  setup(api) {
26
- api.modifyBuilderConfig(config => {
58
+ api.modifyBuilderConfig((config) => {
27
59
  if (isStreamingSSR(modernConfig)) {
28
- return (0, _builderShared.mergeBuilderConfig)(config, {
60
+ return (0, import_builder_shared.mergeBuilderConfig)(config, {
29
61
  html: {
30
- inject: 'body'
62
+ inject: "body"
31
63
  }
32
64
  });
33
65
  }
34
66
  return config;
35
67
  });
36
- api.modifyWebpackChain((chain, {
37
- target,
38
- CHAIN_ID,
39
- isProd
40
- }) => {
68
+ api.modifyWebpackChain((chain, { target, CHAIN_ID, isProd }) => {
69
+ var _a;
41
70
  const builderNormalizedConfig = api.getNormalizedConfig();
42
- // set webpack config name
43
- if (target === 'node') {
44
- chain.name('server');
45
- } else if (target === 'modern-web') {
46
- chain.name('modern');
71
+ if (target === "node") {
72
+ chain.name("server");
73
+ } else if (target === "modern-web") {
74
+ chain.name("modern");
47
75
  } else {
48
- chain.name('client');
76
+ chain.name("client");
49
77
  }
50
- chain.resolve.modules.add('node_modules').add((0, _path.join)(api.context.rootPath, 'node_modules'));
51
-
52
- // apply node compat
53
- if (target === 'node') {
78
+ chain.resolve.modules.add("node_modules").add((0, import_path.join)(api.context.rootPath, "node_modules"));
79
+ if (target === "node") {
54
80
  applyNodeCompat(chain, modernConfig, isProd);
55
81
  }
56
82
  if (isHtmlEnabled(builderNormalizedConfig, target)) {
@@ -67,32 +93,39 @@ const PluginCompatModern = (appContext, modernConfig, options) => ({
67
93
  modernConfig
68
94
  });
69
95
  }
70
-
71
- // apply copy plugin
72
96
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
73
- const defaultCopyPattern = (0, _share.createCopyPattern)(appContext, modernConfig, 'public', chain);
74
- chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(args => {
75
- var _args$;
76
- return [{
77
- patterns: [...(((_args$ = args[0]) === null || _args$ === void 0 ? void 0 : _args$.patterns) || []), defaultCopyPattern]
78
- }];
97
+ const defaultCopyPattern = (0, import_share.createCopyPattern)(
98
+ appContext,
99
+ modernConfig,
100
+ "public",
101
+ chain
102
+ );
103
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
104
+ var _a2;
105
+ return [
106
+ {
107
+ patterns: [...((_a2 = args[0]) == null ? void 0 : _a2.patterns) || [], defaultCopyPattern]
108
+ }
109
+ ];
79
110
  });
80
111
  }
81
- const {
82
- entrypoints
83
- } = appContext;
84
- const existNestedRoutes = entrypoints.some(entrypoint => entrypoint.nestedRoutesEntry);
85
- chain.plugin('route-plugin').use(_routerPlugin.default, [{
86
- existNestedRoutes
87
- }]);
88
- if (target !== 'node') {
112
+ const { entrypoints } = appContext;
113
+ const existNestedRoutes = entrypoints.some(
114
+ (entrypoint) => entrypoint.nestedRoutesEntry
115
+ );
116
+ const routerConfig = (_a = modernConfig == null ? void 0 : modernConfig.runtime) == null ? void 0 : _a.router;
117
+ const routerManifest = Boolean(routerConfig == null ? void 0 : routerConfig.manifest);
118
+ if (existNestedRoutes || routerManifest) {
119
+ chain.plugin("route-plugin").use(import_routerPlugin.default);
120
+ }
121
+ if (target !== "node") {
89
122
  const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
90
123
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
91
- chain.module.rule('bare-server-module').test(bareServerModuleReg).use('server-module-loader').loader(require.resolve("../loaders/serverModuleLoader"));
124
+ chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
92
125
  }
93
- function isHtmlEnabled(config, target) {
94
- var _config$tools;
95
- return ((_config$tools = config.tools) === null || _config$tools === void 0 ? void 0 : _config$tools.htmlPlugin) !== false && target !== 'node' && target !== 'web-worker';
126
+ function isHtmlEnabled(config, target2) {
127
+ var _a2;
128
+ return ((_a2 = config.tools) == null ? void 0 : _a2.htmlPlugin) !== false && target2 !== "node" && target2 !== "web-worker";
96
129
  }
97
130
  });
98
131
  if (options) {
@@ -100,11 +133,6 @@ const PluginCompatModern = (appContext, modernConfig, options) => ({
100
133
  }
101
134
  }
102
135
  });
103
-
104
- /**
105
- * register builder hooks callback
106
- */
107
- exports.PluginCompatModern = PluginCompatModern;
108
136
  function applyCallbacks(api, options) {
109
137
  options.onAfterBuild && api.onAfterBuild(options.onAfterBuild);
110
138
  options.onAfterCreateCompiler && api.onAfterCreateCompiler(options.onAfterCreateCompiler);
@@ -115,60 +143,57 @@ function applyCallbacks(api, options) {
115
143
  options.onDevCompileDone && api.onDevCompileDone(options.onDevCompileDone);
116
144
  options.onExit && api.onExit(options.onExit);
117
145
  }
118
-
119
- /**
120
- * compat some config, if target is `node`
121
- */
122
146
  function applyNodeCompat(chain, modernConfig, isProd) {
123
- // apply node resolve extensions
124
- for (const ext of ['.node.js', '.node.jsx', '.node.ts', '.node.tsx', '.server.js', '.server.ts', '.server.ts', '.server.tsx']) {
147
+ for (const ext of [
148
+ ".node.js",
149
+ ".node.jsx",
150
+ ".node.ts",
151
+ ".node.tsx",
152
+ ".server.js",
153
+ ".server.ts",
154
+ ".server.ts",
155
+ ".server.tsx"
156
+ ]) {
125
157
  chain.resolve.extensions.prepend(ext);
126
158
  }
127
-
128
- // apply filterEntriesBySSRConfig
129
- filterEntriesBySSRConfig(isProd, chain, modernConfig.server, modernConfig.output);
130
- function filterEntriesBySSRConfig(isProd, chain, serverConfig, outputConfig) {
131
- var _outputConfig$ssg;
132
- const entries = chain.entryPoints.entries();
133
- // if prod and ssg config is true or function
134
- if (isProd && ((outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg) === true || typeof (outputConfig === null || outputConfig === void 0 ? void 0 : (_outputConfig$ssg = outputConfig.ssg) === null || _outputConfig$ssg === void 0 ? void 0 : _outputConfig$ssg[0]) === 'function')) {
159
+ filterEntriesBySSRConfig(
160
+ isProd,
161
+ chain,
162
+ modernConfig.server,
163
+ modernConfig.output
164
+ );
165
+ function filterEntriesBySSRConfig(isProd2, chain2, serverConfig, outputConfig) {
166
+ var _a;
167
+ const entries = chain2.entryPoints.entries();
168
+ if (isProd2 && ((outputConfig == null ? void 0 : outputConfig.ssg) === true || typeof ((_a = outputConfig == null ? void 0 : outputConfig.ssg) == null ? void 0 : _a[0]) === "function")) {
135
169
  return;
136
170
  }
137
-
138
- // if single entry has ssg config
139
- // `ssg: {}` is not allowed if multi entry
171
+ if (typeof entries === "undefined") {
172
+ throw new Error(
173
+ "No entry found, one of src/routes/layout.tsx, src/App.tsx, src/index.tsx is required"
174
+ );
175
+ }
140
176
  const entryNames = Object.keys(entries);
141
- if (isProd && entryNames.length === 1 && outputConfig !== null && outputConfig !== void 0 && outputConfig.ssg) {
177
+ if (isProd2 && entryNames.length === 1 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
142
178
  return;
143
179
  }
144
-
145
- // collect all ssg entries
146
180
  const ssgEntries = [];
147
- if (isProd && outputConfig !== null && outputConfig !== void 0 && outputConfig.ssg) {
148
- const {
149
- ssg
150
- } = outputConfig;
151
- entryNames.forEach(name => {
181
+ if (isProd2 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
182
+ const { ssg } = outputConfig;
183
+ entryNames.forEach((name) => {
152
184
  if (ssg[name]) {
153
185
  ssgEntries.push(name);
154
186
  }
155
187
  });
156
188
  }
157
- const {
158
- ssr,
159
- ssrByEntries
160
- } = serverConfig || {};
161
- entryNames.forEach(name => {
162
- if (!ssgEntries.includes(name) && (ssr && (ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries !== null && ssrByEntries !== void 0 && ssrByEntries[name]))) {
163
- chain.entryPoints.delete(name);
189
+ const { ssr, ssrByEntries } = serverConfig || {};
190
+ entryNames.forEach((name) => {
191
+ if (!ssgEntries.includes(name) && (ssr && (ssrByEntries == null ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries == null ? void 0 : ssrByEntries[name]))) {
192
+ chain2.entryPoints.delete(name);
164
193
  }
165
194
  });
166
195
  }
167
196
  }
168
-
169
- /**
170
- * inject bottom template
171
- */
172
197
  function applyBottomHtmlWebpackPlugin({
173
198
  api,
174
199
  chain,
@@ -176,33 +201,40 @@ function applyBottomHtmlWebpackPlugin({
176
201
  appContext,
177
202
  CHAIN_ID
178
203
  }) {
179
- // inject bottomTemplate into html-webpack-plugin
180
204
  for (const entryName of Object.keys(api.context.entry)) {
181
- // FIXME: the only need necessary
182
- const baseTemplateParams = _objectSpread({
205
+ const baseTemplateParams = __spreadValues({
183
206
  entryName,
184
- title: (0, _utils.getEntryOptions)(entryName, modernConfig.html.title, modernConfig.html.titleByEntries, appContext.packageName),
207
+ title: (0, import_utils.getEntryOptions)(
208
+ entryName,
209
+ modernConfig.html.title,
210
+ modernConfig.html.titleByEntries,
211
+ appContext.packageName
212
+ ),
185
213
  mountId: modernConfig.html.mountId
186
- }, (0, _utils.getEntryOptions)(entryName, modernConfig.html.templateParameters, modernConfig.html.templateParametersByEntries, appContext.packageName));
187
- chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap(args => [_objectSpread(_objectSpread({}, args[0] || {}), {}, {
188
- __internal__: true,
189
- bottomTemplate: appContext.htmlTemplates[`__${entryName}-bottom__`] && (0, _lodash.template)(appContext.htmlTemplates[`__${entryName}-bottom__`])(baseTemplateParams)
190
- })]);
214
+ }, (0, import_utils.getEntryOptions)(
215
+ entryName,
216
+ modernConfig.html.templateParameters,
217
+ modernConfig.html.templateParametersByEntries,
218
+ appContext.packageName
219
+ ));
220
+ chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap((args) => [
221
+ __spreadProps(__spreadValues({}, args[0] || {}), {
222
+ __internal__: true,
223
+ bottomTemplate: appContext.htmlTemplates[`__${entryName}-bottom__`] && (0, import_lodash.template)(appContext.htmlTemplates[`__${entryName}-bottom__`])(
224
+ baseTemplateParams
225
+ )
226
+ })
227
+ ]);
191
228
  }
192
- chain.plugin(CHAIN_ID.PLUGIN.BOTTOM_TEMPLATE).use(_htmlBottomTemplate.BottomTemplatePlugin, [_htmlWebpackPlugin.default]);
229
+ chain.plugin(CHAIN_ID.PLUGIN.BOTTOM_TEMPLATE).use(import_htmlBottomTemplate.BottomTemplatePlugin, [import_html_webpack_plugin.default]);
193
230
  }
194
- const isStreamingSSR = userConfig => {
195
- const isStreaming = ssr => ssr && typeof ssr === 'object' && ssr.mode === 'stream';
196
- const {
197
- server
198
- } = userConfig;
231
+ const isStreamingSSR = (userConfig) => {
232
+ const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
233
+ const { server } = userConfig;
199
234
  if (isStreaming(server.ssr)) {
200
235
  return true;
201
236
  }
202
-
203
- // Since we cannot apply different plugins for different entries,
204
- // we regard the whole app as streaming ssr only if one entry meets the requirement.
205
- if (server !== null && server !== void 0 && server.ssrByEntries && typeof server.ssrByEntries === 'object') {
237
+ if ((server == null ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
206
238
  for (const name of Object.keys(server.ssrByEntries)) {
207
239
  if (isStreaming(server.ssrByEntries[name])) {
208
240
  return true;
@@ -217,6 +249,10 @@ function applyAsyncChunkHtmlPlugin({
217
249
  CHAIN_ID
218
250
  }) {
219
251
  if (isStreamingSSR(modernConfig)) {
220
- chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(_htmlAsyncChunkPlugin.HtmlAsyncChunkPlugin, [_htmlWebpackPlugin.default]);
252
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(import_htmlAsyncChunkPlugin.HtmlAsyncChunkPlugin, [import_html_webpack_plugin.default]);
221
253
  }
222
- }
254
+ }
255
+ // Annotate the CommonJS export names for ESM import in node:
256
+ 0 && (module.exports = {
257
+ PluginCompatModern
258
+ });