@modern-js/app-tools 2.31.3-alpha.0 → 2.32.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 (246) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/LICENSE +1 -1
  3. package/dist/cjs/analyze/getServerRoutes.js +1 -1
  4. package/dist/cjs/index.js +1 -4
  5. package/dist/esm/analyze/getServerRoutes.js +1 -1
  6. package/dist/esm/index.js +1 -14
  7. package/dist/esm-node/analyze/getServerRoutes.js +1 -1
  8. package/dist/esm-node/index.js +1 -4
  9. package/package.json +24 -24
  10. package/dist/js/modern/analyze/constants.js +0 -54
  11. package/dist/js/modern/analyze/generateCode.js +0 -247
  12. package/dist/js/modern/analyze/getBundleEntry.js +0 -71
  13. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
  14. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
  15. package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
  16. package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
  17. package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
  18. package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
  19. package/dist/js/modern/analyze/getServerRoutes.js +0 -175
  20. package/dist/js/modern/analyze/index.js +0 -332
  21. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
  22. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
  23. package/dist/js/modern/analyze/nestedRoutes.js +0 -157
  24. package/dist/js/modern/analyze/templates.js +0 -334
  25. package/dist/js/modern/analyze/utils.js +0 -141
  26. package/dist/js/modern/builder/builderPlugins/compatModern.js +0 -233
  27. package/dist/js/modern/builder/index.js +0 -159
  28. package/dist/js/modern/builder/loaders/routerLoader.js +0 -17
  29. package/dist/js/modern/builder/loaders/serverModuleLoader.js +0 -7
  30. package/dist/js/modern/builder/share.js +0 -46
  31. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
  32. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
  33. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +0 -113
  34. package/dist/js/modern/commands/build.js +0 -91
  35. package/dist/js/modern/commands/deploy.js +0 -28
  36. package/dist/js/modern/commands/dev.js +0 -109
  37. package/dist/js/modern/commands/index.js +0 -3
  38. package/dist/js/modern/commands/inspect.js +0 -38
  39. package/dist/js/modern/commands/serve.js +0 -54
  40. package/dist/js/modern/config/default.js +0 -175
  41. package/dist/js/modern/config/index.js +0 -8
  42. package/dist/js/modern/config/initial/createHtmlConfig.js +0 -35
  43. package/dist/js/modern/config/initial/createOutputConfig.js +0 -68
  44. package/dist/js/modern/config/initial/createSourceConfig.js +0 -39
  45. package/dist/js/modern/config/initial/createToolsConfig.js +0 -42
  46. package/dist/js/modern/config/initial/index.js +0 -16
  47. package/dist/js/modern/config/initial/inits.js +0 -152
  48. package/dist/js/modern/config/initial/transformNormalizedConfig.js +0 -47
  49. package/dist/js/modern/defineConfig.js +0 -27
  50. package/dist/js/modern/exports/server.js +0 -4
  51. package/dist/js/modern/hooks.js +0 -35
  52. package/dist/js/modern/index.js +0 -211
  53. package/dist/js/modern/initialize/index.js +0 -124
  54. package/dist/js/modern/locale/en.js +0 -36
  55. package/dist/js/modern/locale/index.js +0 -9
  56. package/dist/js/modern/locale/zh.js +0 -36
  57. package/dist/js/modern/schema/Schema.js +0 -40
  58. package/dist/js/modern/schema/index.js +0 -88
  59. package/dist/js/modern/schema/legacy.js +0 -148
  60. package/dist/js/modern/types/config/deploy.js +0 -0
  61. package/dist/js/modern/types/config/dev.js +0 -0
  62. package/dist/js/modern/types/config/experiments.js +0 -0
  63. package/dist/js/modern/types/config/html.js +0 -0
  64. package/dist/js/modern/types/config/index.js +0 -1
  65. package/dist/js/modern/types/config/output.js +0 -0
  66. package/dist/js/modern/types/config/performance.js +0 -0
  67. package/dist/js/modern/types/config/security.js +0 -0
  68. package/dist/js/modern/types/config/source.js +0 -0
  69. package/dist/js/modern/types/config/tools.js +0 -0
  70. package/dist/js/modern/types/hooks.js +0 -0
  71. package/dist/js/modern/types/index.js +0 -3
  72. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  73. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  74. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  75. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  76. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  77. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  78. package/dist/js/modern/utils/config.js +0 -128
  79. package/dist/js/modern/utils/createServer.js +0 -75
  80. package/dist/js/modern/utils/env.js +0 -15
  81. package/dist/js/modern/utils/generateWatchFiles.js +0 -55
  82. package/dist/js/modern/utils/getSelectedEntries.js +0 -58
  83. package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
  84. package/dist/js/modern/utils/language.js +0 -8
  85. package/dist/js/modern/utils/printInstructions.js +0 -31
  86. package/dist/js/modern/utils/restart.js +0 -44
  87. package/dist/js/modern/utils/routes.js +0 -30
  88. package/dist/js/modern/utils/types.js +0 -0
  89. package/dist/js/node/analyze/constants.js +0 -98
  90. package/dist/js/node/analyze/generateCode.js +0 -271
  91. package/dist/js/node/analyze/getBundleEntry.js +0 -95
  92. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
  93. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
  94. package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
  95. package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
  96. package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
  97. package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
  98. package/dist/js/node/analyze/getServerRoutes.js +0 -194
  99. package/dist/js/node/analyze/index.js +0 -339
  100. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
  101. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
  102. package/dist/js/node/analyze/nestedRoutes.js +0 -184
  103. package/dist/js/node/analyze/templates.js +0 -365
  104. package/dist/js/node/analyze/utils.js +0 -172
  105. package/dist/js/node/builder/builderPlugins/compatModern.js +0 -258
  106. package/dist/js/node/builder/index.js +0 -177
  107. package/dist/js/node/builder/loaders/routerLoader.js +0 -38
  108. package/dist/js/node/builder/loaders/serverModuleLoader.js +0 -28
  109. package/dist/js/node/builder/share.js +0 -75
  110. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -53
  111. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +0 -60
  112. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +0 -135
  113. package/dist/js/node/commands/build.js +0 -112
  114. package/dist/js/node/commands/deploy.js +0 -51
  115. package/dist/js/node/commands/dev.js +0 -126
  116. package/dist/js/node/commands/index.js +0 -19
  117. package/dist/js/node/commands/inspect.js +0 -61
  118. package/dist/js/node/commands/serve.js +0 -83
  119. package/dist/js/node/config/default.js +0 -197
  120. package/dist/js/node/config/index.js +0 -34
  121. package/dist/js/node/config/initial/createHtmlConfig.js +0 -58
  122. package/dist/js/node/config/initial/createOutputConfig.js +0 -91
  123. package/dist/js/node/config/initial/createSourceConfig.js +0 -62
  124. package/dist/js/node/config/initial/createToolsConfig.js +0 -65
  125. package/dist/js/node/config/initial/index.js +0 -41
  126. package/dist/js/node/config/initial/inits.js +0 -175
  127. package/dist/js/node/config/initial/transformNormalizedConfig.js +0 -70
  128. package/dist/js/node/defineConfig.js +0 -49
  129. package/dist/js/node/exports/server.js +0 -27
  130. package/dist/js/node/hooks.js +0 -54
  131. package/dist/js/node/index.js +0 -235
  132. package/dist/js/node/initialize/index.js +0 -134
  133. package/dist/js/node/locale/en.js +0 -59
  134. package/dist/js/node/locale/index.js +0 -33
  135. package/dist/js/node/locale/zh.js +0 -59
  136. package/dist/js/node/schema/Schema.js +0 -63
  137. package/dist/js/node/schema/index.js +0 -118
  138. package/dist/js/node/schema/legacy.js +0 -169
  139. package/dist/js/node/types/config/deploy.js +0 -15
  140. package/dist/js/node/types/config/dev.js +0 -15
  141. package/dist/js/node/types/config/experiments.js +0 -15
  142. package/dist/js/node/types/config/html.js +0 -15
  143. package/dist/js/node/types/config/index.js +0 -17
  144. package/dist/js/node/types/config/output.js +0 -15
  145. package/dist/js/node/types/config/performance.js +0 -15
  146. package/dist/js/node/types/config/security.js +0 -15
  147. package/dist/js/node/types/config/source.js +0 -15
  148. package/dist/js/node/types/config/tools.js +0 -15
  149. package/dist/js/node/types/hooks.js +0 -15
  150. package/dist/js/node/types/index.js +0 -19
  151. package/dist/js/node/types/legacyConfig/deploy.js +0 -15
  152. package/dist/js/node/types/legacyConfig/dev.js +0 -15
  153. package/dist/js/node/types/legacyConfig/index.js +0 -15
  154. package/dist/js/node/types/legacyConfig/output.js +0 -15
  155. package/dist/js/node/types/legacyConfig/source.js +0 -15
  156. package/dist/js/node/types/legacyConfig/tools.js +0 -15
  157. package/dist/js/node/utils/config.js +0 -153
  158. package/dist/js/node/utils/createServer.js +0 -106
  159. package/dist/js/node/utils/env.js +0 -38
  160. package/dist/js/node/utils/generateWatchFiles.js +0 -85
  161. package/dist/js/node/utils/getSelectedEntries.js +0 -81
  162. package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
  163. package/dist/js/node/utils/language.js +0 -31
  164. package/dist/js/node/utils/printInstructions.js +0 -54
  165. package/dist/js/node/utils/restart.js +0 -67
  166. package/dist/js/node/utils/routes.js +0 -59
  167. package/dist/js/node/utils/types.js +0 -15
  168. package/dist/js/treeshaking/analyze/constants.js +0 -40
  169. package/dist/js/treeshaking/analyze/generateCode.js +0 -485
  170. package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
  171. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
  172. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
  173. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
  174. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
  175. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
  176. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
  177. package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -222
  178. package/dist/js/treeshaking/analyze/index.js +0 -697
  179. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
  180. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
  181. package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -384
  182. package/dist/js/treeshaking/analyze/templates.js +0 -468
  183. package/dist/js/treeshaking/analyze/utils.js +0 -374
  184. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +0 -304
  185. package/dist/js/treeshaking/builder/index.js +0 -374
  186. package/dist/js/treeshaking/builder/loaders/routerLoader.js +0 -13
  187. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +0 -5
  188. package/dist/js/treeshaking/builder/share.js +0 -40
  189. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -110
  190. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +0 -72
  191. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +0 -343
  192. package/dist/js/treeshaking/commands/build.js +0 -291
  193. package/dist/js/treeshaking/commands/deploy.js +0 -154
  194. package/dist/js/treeshaking/commands/dev.js +0 -301
  195. package/dist/js/treeshaking/commands/index.js +0 -3
  196. package/dist/js/treeshaking/commands/inspect.js +0 -149
  197. package/dist/js/treeshaking/commands/serve.js +0 -199
  198. package/dist/js/treeshaking/config/default.js +0 -210
  199. package/dist/js/treeshaking/config/index.js +0 -3
  200. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
  201. package/dist/js/treeshaking/config/initial/createOutputConfig.js +0 -41
  202. package/dist/js/treeshaking/config/initial/createSourceConfig.js +0 -42
  203. package/dist/js/treeshaking/config/initial/createToolsConfig.js +0 -23
  204. package/dist/js/treeshaking/config/initial/index.js +0 -12
  205. package/dist/js/treeshaking/config/initial/inits.js +0 -209
  206. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +0 -35
  207. package/dist/js/treeshaking/defineConfig.js +0 -61
  208. package/dist/js/treeshaking/exports/server.js +0 -2
  209. package/dist/js/treeshaking/hooks.js +0 -29
  210. package/dist/js/treeshaking/index.js +0 -706
  211. package/dist/js/treeshaking/initialize/index.js +0 -276
  212. package/dist/js/treeshaking/locale/en.js +0 -38
  213. package/dist/js/treeshaking/locale/index.js +0 -9
  214. package/dist/js/treeshaking/locale/zh.js +0 -38
  215. package/dist/js/treeshaking/schema/Schema.js +0 -273
  216. package/dist/js/treeshaking/schema/index.js +0 -181
  217. package/dist/js/treeshaking/schema/legacy.js +0 -337
  218. package/dist/js/treeshaking/types/config/deploy.js +0 -1
  219. package/dist/js/treeshaking/types/config/dev.js +0 -1
  220. package/dist/js/treeshaking/types/config/experiments.js +0 -1
  221. package/dist/js/treeshaking/types/config/html.js +0 -1
  222. package/dist/js/treeshaking/types/config/index.js +0 -1
  223. package/dist/js/treeshaking/types/config/output.js +0 -1
  224. package/dist/js/treeshaking/types/config/performance.js +0 -1
  225. package/dist/js/treeshaking/types/config/security.js +0 -1
  226. package/dist/js/treeshaking/types/config/source.js +0 -1
  227. package/dist/js/treeshaking/types/config/tools.js +0 -1
  228. package/dist/js/treeshaking/types/hooks.js +0 -1
  229. package/dist/js/treeshaking/types/index.js +0 -3
  230. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
  231. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
  232. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
  233. package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
  234. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
  235. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
  236. package/dist/js/treeshaking/utils/config.js +0 -302
  237. package/dist/js/treeshaking/utils/createServer.js +0 -258
  238. package/dist/js/treeshaking/utils/env.js +0 -13
  239. package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
  240. package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
  241. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
  242. package/dist/js/treeshaking/utils/language.js +0 -6
  243. package/dist/js/treeshaking/utils/printInstructions.js +0 -152
  244. package/dist/js/treeshaking/utils/restart.js +0 -187
  245. package/dist/js/treeshaking/utils/routes.js +0 -153
  246. package/dist/js/treeshaking/utils/types.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # @modern-js/app-tools
2
2
 
3
+ ## 2.32.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4323e68: feat: support client-data file
8
+ feat: 支持 client-data 文件
9
+ - 2447d64: feat: support ssr resources preload
10
+ feat: 支持 ssr 资源预加载
11
+
12
+ ### Patch Changes
13
+
14
+ - e5a3fb4: fix: integration test, and export LoaderContext from utils
15
+ fix: 集成测试,然后导出 LoaderContext
16
+ - 3910eb8: fix: route.json fit ssr.preload
17
+ fix: route.json 适配 ssr.preload
18
+ - 6076166: fix: packaging errors found by publint
19
+
20
+ fix: 修复 publint 检测到的 packaging 问题
21
+
22
+ - c72980d: chore: When the page component exists, keep the layout component
23
+ chore: 当 page 组件存在时,保留 layout 组件
24
+ - 3149ccd: fix: should update asset when only html exists
25
+ fix: 只有当 html 存在时,才更新资源
26
+ - Updated dependencies [e6c7d33]
27
+ - Updated dependencies [e5a3fb4]
28
+ - Updated dependencies [6076166]
29
+ - Updated dependencies [5f7c714]
30
+ - Updated dependencies [6517032]
31
+ - Updated dependencies [a030aff]
32
+ - Updated dependencies [6d73519]
33
+ - Updated dependencies [83c1cf7]
34
+ - Updated dependencies [79658a0]
35
+ - Updated dependencies [0cc3981]
36
+ - Updated dependencies [ddcdef2]
37
+ - Updated dependencies [4323e68]
38
+ - Updated dependencies [3c91100]
39
+ - Updated dependencies [2447d64]
40
+ - Updated dependencies [5255eba]
41
+ - @modern-js/prod-server@2.32.0
42
+ - @modern-js/utils@2.32.0
43
+ - @modern-js/builder-webpack-provider@2.32.0
44
+ - @modern-js/builder-rspack-provider@2.32.0
45
+ - @modern-js/node-bundle-require@2.32.0
46
+ - @modern-js/plugin-data-loader@2.32.0
47
+ - @modern-js/plugin@2.32.0
48
+ - @modern-js/types@2.32.0
49
+ - @modern-js/server-core@2.32.0
50
+ - @modern-js/core@2.32.0
51
+ - @modern-js/server@2.32.0
52
+ - @modern-js/builder-shared@2.32.0
53
+ - @modern-js/builder@2.32.0
54
+ - @modern-js/builder-plugin-esbuild@2.32.0
55
+ - @modern-js/builder-plugin-node-polyfill@2.32.0
56
+ - @modern-js/plugin-i18n@2.32.0
57
+ - @modern-js/plugin-lint@2.32.0
58
+ - @modern-js/new-action@2.32.0
59
+ - @modern-js/upgrade@2.32.0
60
+
3
61
  ## 2.31.2
4
62
 
5
63
  ### Patch Changes
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Modern.js
3
+ Copyright (c) 2021-present Modern.js
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -89,7 +89,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
89
89
  const entryOptions = (0, _utils.getEntryOptions)(entryName, isMainEntry, ssr, ssrByEntries, packageName);
90
90
  const isSSR = Boolean(entryOptions);
91
91
  const isWorker = Boolean(workerSSR);
92
- const isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
92
+ const isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
93
93
  const { resHeaders } = ((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {};
94
94
  let route = {
95
95
  urlPath: `/${isMainEntry ? "" : entryName}`,
package/dist/cjs/index.js CHANGED
@@ -219,10 +219,7 @@ const appTools = (options = {
219
219
  },
220
220
  async beforeGenerateRoutes({ entrypoint, code }) {
221
221
  const { distDirectory } = api.useAppContext();
222
- if (!_utils.fs.existsSync(distDirectory)) {
223
- await _utils.fs.mkdir(distDirectory);
224
- }
225
- await _utils.fs.writeJSON(_path.default.resolve(distDirectory, _utils.NESTED_ROUTE_SPEC_FILE), nestedRoutes);
222
+ await _utils.fs.outputJSON(_path.default.resolve(distDirectory, _utils.NESTED_ROUTE_SPEC_FILE), nestedRoutes);
226
223
  return {
227
224
  entrypoint,
228
225
  code
@@ -80,7 +80,7 @@ var collectHtmlRoutes = function(entrypoints, appContext, config) {
80
80
  var entryOptions = getEntryOptions(entryName, isMainEntry, ssr, ssrByEntries, packageName);
81
81
  var isSSR = Boolean(entryOptions);
82
82
  var isWorker = Boolean(workerSSR);
83
- var isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
83
+ var isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
84
84
  var resHeaders = (((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {}).resHeaders;
85
85
  var route = {
86
86
  urlPath: "/".concat(isMainEntry ? "" : entryName),
package/dist/esm/index.js CHANGED
@@ -626,24 +626,11 @@ export var appTools = function() {
626
626
  switch (_state.label) {
627
627
  case 0:
628
628
  distDirectory = api.useAppContext().distDirectory;
629
- if (!!fs.existsSync(distDirectory))
630
- return [
631
- 3,
632
- 2
633
- ];
634
629
  return [
635
630
  4,
636
- fs.mkdir(distDirectory)
631
+ fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes)
637
632
  ];
638
633
  case 1:
639
- _state.sent();
640
- _state.label = 2;
641
- case 2:
642
- return [
643
- 4,
644
- fs.writeJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes)
645
- ];
646
- case 3:
647
634
  _state.sent();
648
635
  return [
649
636
  2,
@@ -78,7 +78,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
78
78
  const entryOptions = getEntryOptions(entryName, isMainEntry, ssr, ssrByEntries, packageName);
79
79
  const isSSR = Boolean(entryOptions);
80
80
  const isWorker = Boolean(workerSSR);
81
- const isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
81
+ const isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
82
82
  const { resHeaders } = ((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {};
83
83
  let route = {
84
84
  urlPath: `/${isMainEntry ? "" : entryName}`,
@@ -185,10 +185,7 @@ export const appTools = (options = {
185
185
  },
186
186
  async beforeGenerateRoutes({ entrypoint, code }) {
187
187
  const { distDirectory } = api.useAppContext();
188
- if (!fs.existsSync(distDirectory)) {
189
- await fs.mkdir(distDirectory);
190
- }
191
- await fs.writeJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes);
188
+ await fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes);
192
189
  return {
193
190
  entrypoint,
194
191
  code
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.31.3-alpha.0",
18
+ "version": "2.32.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -73,24 +73,24 @@
73
73
  "esbuild": "0.17.19",
74
74
  "rspack-plugin-virtual-module": "0.1.7",
75
75
  "@swc/helpers": "0.5.1",
76
- "@modern-js/builder": "2.31.2",
77
- "@modern-js/builder-shared": "2.31.2",
78
- "@modern-js/builder-webpack-provider": "2.31.2",
79
- "@modern-js/core": "2.31.2",
80
- "@modern-js/node-bundle-require": "2.31.2",
81
- "@modern-js/plugin-i18n": "2.31.2",
82
- "@modern-js/plugin": "2.31.2",
83
- "@modern-js/plugin-lint": "2.31.2",
84
- "@modern-js/prod-server": "2.31.2",
85
- "@modern-js/server": "2.31.2",
86
- "@modern-js/upgrade": "2.31.2",
87
- "@modern-js/types": "2.31.2",
88
- "@modern-js/utils": "2.31.2",
89
- "@modern-js/server-core": "2.31.2",
90
- "@modern-js/new-action": "2.31.2",
91
- "@modern-js/builder-plugin-esbuild": "2.31.2",
92
- "@modern-js/builder-plugin-node-polyfill": "2.31.2",
93
- "@modern-js/plugin-data-loader": "2.31.2"
76
+ "@modern-js/builder": "2.32.0",
77
+ "@modern-js/builder-plugin-esbuild": "2.32.0",
78
+ "@modern-js/builder-plugin-node-polyfill": "2.32.0",
79
+ "@modern-js/builder-shared": "2.32.0",
80
+ "@modern-js/builder-webpack-provider": "2.32.0",
81
+ "@modern-js/core": "2.32.0",
82
+ "@modern-js/new-action": "2.32.0",
83
+ "@modern-js/node-bundle-require": "2.32.0",
84
+ "@modern-js/plugin": "2.32.0",
85
+ "@modern-js/plugin-data-loader": "2.32.0",
86
+ "@modern-js/plugin-i18n": "2.32.0",
87
+ "@modern-js/plugin-lint": "2.32.0",
88
+ "@modern-js/prod-server": "2.32.0",
89
+ "@modern-js/server": "2.32.0",
90
+ "@modern-js/types": "2.32.0",
91
+ "@modern-js/upgrade": "2.32.0",
92
+ "@modern-js/utils": "2.32.0",
93
+ "@modern-js/server-core": "2.32.0"
94
94
  },
95
95
  "devDependencies": {
96
96
  "@types/babel__traverse": "^7.14.2",
@@ -99,13 +99,13 @@
99
99
  "jest": "^29",
100
100
  "typescript": "^5",
101
101
  "webpack": "^5.88.1",
102
- "@modern-js/builder-rspack-provider": "2.31.2",
103
- "@scripts/build": "2.31.1",
104
- "@scripts/jest-config": "2.31.1",
105
- "@modern-js/builder-plugin-swc": "2.31.2"
102
+ "@modern-js/builder-plugin-swc": "2.32.0",
103
+ "@modern-js/builder-rspack-provider": "2.32.0",
104
+ "@scripts/build": "2.32.0",
105
+ "@scripts/jest-config": "2.32.0"
106
106
  },
107
107
  "peerDependencies": {
108
- "@modern-js/builder-rspack-provider": "^2.31.2"
108
+ "@modern-js/builder-rspack-provider": "^2.32.0"
109
109
  },
110
110
  "peerDependenciesMeta": {
111
111
  "@modern-js/builder-rspack-provider": {
@@ -1,54 +0,0 @@
1
- const JS_EXTENSIONS = [".js", ".ts", ".jsx", ".tsx"];
2
- const INDEX_FILE_NAME = "index";
3
- const APP_FILE_NAME = "App";
4
- const PAGES_DIR_NAME = "pages";
5
- const NESTED_ROUTES_DIR = "routes";
6
- const FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
7
- const LOADER_EXPORT_NAME = "loader";
8
- const TEMP_LOADERS_DIR = "__loaders__";
9
- const ENTRY_POINT_FILE_NAME = "index.js";
10
- const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.js";
11
- const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
12
- const FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
13
- const FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
14
- const FILE_SYSTEM_ROUTES_INDEX = "index";
15
- const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
16
- const HTML_PARTIALS_FOLDER = "html";
17
- const HTML_PARTIALS_EXTENSIONS = [".htm", ".html", ".ejs"];
18
- const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
19
- const NESTED_ROUTE = {
20
- LAYOUT_FILE: "layout",
21
- LAYOUT_LOADER_FILE: "layout.loader",
22
- PAGE_FILE: "page",
23
- PAGE_LOADER_FILE: "page.loader",
24
- LOADING_FILE: "loading",
25
- ERROR_FILE: "error",
26
- LOADER_FILE: "loader"
27
- };
28
- const APP_CONFIG_NAME = "config";
29
- const APP_INIT_EXPORTED = "init";
30
- const APP_INIT_IMPORTED = "appInit";
31
- export {
32
- APP_CONFIG_NAME,
33
- APP_FILE_NAME,
34
- APP_INIT_EXPORTED,
35
- APP_INIT_IMPORTED,
36
- ENTRY_BOOTSTRAP_FILE_NAME,
37
- ENTRY_POINT_FILE_NAME,
38
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
39
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
40
- FILE_SYSTEM_ROUTES_FILE_NAME,
41
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
42
- FILE_SYSTEM_ROUTES_IGNORED_REGEX,
43
- FILE_SYSTEM_ROUTES_INDEX,
44
- FILE_SYSTEM_ROUTES_LAYOUT,
45
- HTML_PARTIALS_EXTENSIONS,
46
- HTML_PARTIALS_FOLDER,
47
- INDEX_FILE_NAME,
48
- JS_EXTENSIONS,
49
- LOADER_EXPORT_NAME,
50
- NESTED_ROUTE,
51
- NESTED_ROUTES_DIR,
52
- PAGES_DIR_NAME,
53
- TEMP_LOADERS_DIR
54
- };
@@ -1,247 +0,0 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
- import path from "path";
22
- import { fs, getEntryOptions, logger } from "@modern-js/utils";
23
- import {
24
- useResolvedConfigContext
25
- } from "@modern-js/core";
26
- import * as templates from "./templates";
27
- import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
28
- import {
29
- FILE_SYSTEM_ROUTES_FILE_NAME,
30
- ENTRY_POINT_FILE_NAME,
31
- ENTRY_BOOTSTRAP_FILE_NAME
32
- } from "./constants";
33
- import { getDefaultImports, getServerLoadersFile } from "./utils";
34
- import { walk } from "./nestedRoutes";
35
- const createImportSpecifier = (specifiers) => {
36
- let defaults = "";
37
- const named = [];
38
- for (const { local, imported } of specifiers) {
39
- if (local && imported) {
40
- named.push(`${imported} as ${local}`);
41
- } else if (local) {
42
- defaults = local;
43
- } else {
44
- named.push(imported);
45
- }
46
- }
47
- if (defaults && named.length) {
48
- return `${defaults}, { ${named.join(", ")} }`;
49
- } else if (defaults) {
50
- return defaults;
51
- } else {
52
- return `{ ${named.join(", ")} }`;
53
- }
54
- };
55
- const createImportStatements = (statements) => {
56
- var _a, _b;
57
- const deDuplicated = [];
58
- const seen = /* @__PURE__ */ new Map();
59
- for (const { value, specifiers, initialize } of statements) {
60
- if (!seen.has(value)) {
61
- deDuplicated.push({
62
- value,
63
- specifiers,
64
- initialize
65
- });
66
- seen.set(value, specifiers);
67
- } else {
68
- seen.get(value).push(...specifiers);
69
- const modifyIndex = deDuplicated.findIndex((v) => v.value === value);
70
- const originInitialize = (_b = (_a = deDuplicated[modifyIndex]) == null ? void 0 : _a.initialize) != null ? _b : "";
71
- deDuplicated[modifyIndex].initialize = originInitialize.concat(
72
- `
73
- ${initialize || ""}`
74
- );
75
- }
76
- }
77
- return deDuplicated.map(
78
- ({ value, specifiers, initialize }) => `import ${createImportSpecifier(specifiers)} from '${value}';
79
- ${initialize || ""}`
80
- ).join("\n");
81
- };
82
- const generateCode = (appContext, config, entrypoints, api) => __async(void 0, null, function* () {
83
- var _a, _b, _c;
84
- const {
85
- internalDirectory,
86
- srcDirectory,
87
- internalDirAlias,
88
- internalSrcAlias,
89
- packageName
90
- } = appContext;
91
- const hookRunners = api.useHookRunners();
92
- const isV5 = typeof ((_a = config.runtime) == null ? void 0 : _a.router) !== "boolean" && ((_c = (_b = config == null ? void 0 : config.runtime) == null ? void 0 : _b.router) == null ? void 0 : _c.mode) === "react-router-5";
93
- const { mountId } = config.html;
94
- const getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
95
- yield Promise.all(entrypoints.map(generateEntryCode));
96
- function generateEntryCode(entrypoint) {
97
- return __async(this, null, function* () {
98
- const { entryName, isAutoMount, customBootstrap, fileSystemRoutes } = entrypoint;
99
- if (isAutoMount) {
100
- if (fileSystemRoutes) {
101
- let initialRoutes = [];
102
- let nestedRoute = null;
103
- if (entrypoint.entry) {
104
- initialRoutes = getRoutes({
105
- entrypoint,
106
- srcDirectory,
107
- srcAlias: internalSrcAlias,
108
- internalDirectory,
109
- internalDirAlias
110
- });
111
- }
112
- if (entrypoint.nestedRoutesEntry) {
113
- if (!isV5) {
114
- nestedRoute = yield walk(
115
- entrypoint.nestedRoutesEntry,
116
- entrypoint.nestedRoutesEntry,
117
- {
118
- name: internalSrcAlias,
119
- basename: srcDirectory
120
- },
121
- entrypoint.entryName
122
- );
123
- if (nestedRoute) {
124
- initialRoutes.unshift(nestedRoute);
125
- }
126
- } else {
127
- logger.error("Nested routes is not supported in legacy mode.");
128
- process.exit(1);
129
- }
130
- }
131
- const { routes } = yield hookRunners.modifyFileSystemRoutes({
132
- entrypoint,
133
- routes: initialRoutes
134
- });
135
- const config2 = useResolvedConfigContext();
136
- const ssr = getEntryOptions(
137
- entryName,
138
- config2.server.ssr,
139
- config2.server.ssrByEntries,
140
- packageName
141
- );
142
- let mode;
143
- if (ssr) {
144
- mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
145
- } else {
146
- mode = false;
147
- }
148
- if (mode === "stream") {
149
- const hasPageRoute = routes.some(
150
- (route) => "type" in route && route.type === "page"
151
- );
152
- if (hasPageRoute) {
153
- logger.error(
154
- "Streaming ssr is not supported when pages dir exists"
155
- );
156
- process.exit(1);
157
- }
158
- }
159
- const { code: code2 } = yield hookRunners.beforeGenerateRoutes({
160
- entrypoint,
161
- code: yield templates.fileSystemRoutes({
162
- routes,
163
- ssrMode: mode,
164
- nestedRoutesEntry: entrypoint.nestedRoutesEntry,
165
- entryName: entrypoint.entryName,
166
- internalDirectory
167
- })
168
- });
169
- if (entrypoint.nestedRoutesEntry && mode) {
170
- const routesServerFile = getServerLoadersFile(
171
- internalDirectory,
172
- entryName
173
- );
174
- const code3 = templates.routesForServer({
175
- routes
176
- });
177
- yield fs.ensureFile(routesServerFile);
178
- yield fs.writeFile(routesServerFile, code3);
179
- }
180
- fs.outputFileSync(
181
- path.resolve(
182
- internalDirectory,
183
- `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`
184
- ),
185
- code2,
186
- "utf8"
187
- );
188
- }
189
- const { imports: importStatements } = yield hookRunners.modifyEntryImports({
190
- entrypoint,
191
- imports: getDefaultImports({
192
- entrypoint,
193
- srcDirectory,
194
- internalSrcAlias,
195
- internalDirAlias,
196
- internalDirectory
197
- })
198
- });
199
- const { plugins } = yield hookRunners.modifyEntryRuntimePlugins({
200
- entrypoint,
201
- plugins: []
202
- });
203
- const { code: renderFunction } = yield hookRunners.modifyEntryRenderFunction({
204
- entrypoint,
205
- code: templates.renderFunction({
206
- plugins,
207
- customBootstrap,
208
- fileSystemRoutes
209
- })
210
- });
211
- const { exportStatement } = yield hookRunners.modifyEntryExport({
212
- entrypoint,
213
- exportStatement: "export default AppWrapper;"
214
- });
215
- const code = templates.index({
216
- mountId,
217
- imports: createImportStatements(importStatements),
218
- renderFunction,
219
- exportStatement
220
- });
221
- const entryFile = path.resolve(
222
- internalDirectory,
223
- `./${entryName}/${ENTRY_POINT_FILE_NAME}`
224
- );
225
- entrypoint.entry = entryFile;
226
- if (config.source.enableAsyncEntry) {
227
- const { code: asyncEntryCode } = yield hookRunners.modifyAsyncEntry({
228
- entrypoint,
229
- code: `import('./${ENTRY_BOOTSTRAP_FILE_NAME}');`
230
- });
231
- fs.outputFileSync(entryFile, asyncEntryCode, "utf8");
232
- const bootstrapFile = path.resolve(
233
- internalDirectory,
234
- `./${entryName}/${ENTRY_BOOTSTRAP_FILE_NAME}`
235
- );
236
- fs.outputFileSync(bootstrapFile, code, "utf8");
237
- } else {
238
- fs.outputFileSync(entryFile, code, "utf8");
239
- }
240
- }
241
- });
242
- }
243
- });
244
- export {
245
- createImportStatements,
246
- generateCode
247
- };
@@ -1,71 +0,0 @@
1
- import path from "path";
2
- import {
3
- ensureAbsolutePath,
4
- fs,
5
- findExists,
6
- MAIN_ENTRY_NAME
7
- } from "@modern-js/utils";
8
- import { getFileSystemEntry } from "./getFileSystemEntry";
9
- import { JS_EXTENSIONS } from "./constants";
10
- const ensureExtensions = (file) => {
11
- if (!path.extname(file)) {
12
- return findExists(JS_EXTENSIONS.map((ext) => `${file}${ext}`)) || file;
13
- }
14
- return file;
15
- };
16
- const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint) => {
17
- if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
18
- checked.entryName = entrypoint.entryName;
19
- return true;
20
- }
21
- if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
22
- throw new Error(
23
- `Entry configuration conflicts
24
- Your configuration: ${checked.entry}.
25
- Default entrypoint: ${entrypoint.entry}
26
- Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`
27
- );
28
- }
29
- return false;
30
- });
31
- const getBundleEntry = (appContext, config) => {
32
- const { appDirectory, packageName } = appContext;
33
- const {
34
- source: { disableDefaultEntries, entries, entriesDir }
35
- } = config;
36
- const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
37
- if (entries) {
38
- Object.keys(entries).forEach((name) => {
39
- const value = entries[name];
40
- const entrypoint = typeof value === "string" ? {
41
- entryName: name,
42
- entry: ensureAbsolutePath(appDirectory, value),
43
- isAutoMount: true,
44
- fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : void 0
45
- } : {
46
- entryName: name,
47
- entry: ensureAbsolutePath(appDirectory, value.entry),
48
- isAutoMount: !value.disableMount,
49
- customBootstrap: value.customBootstrap && ensureAbsolutePath(appDirectory, value.customBootstrap),
50
- fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value.entry)).isDirectory() ? {} : void 0
51
- };
52
- if (entrypoint.fileSystemRoutes) {
53
- entrypoint.nestedRoutesEntry = entrypoint.entry;
54
- }
55
- if (!ifAlreadyExists(defaults, entrypoint)) {
56
- defaults.push(entrypoint);
57
- }
58
- });
59
- }
60
- if (!disableDefaultEntries) {
61
- const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
62
- const found = defaults.find(
63
- ({ entryName, entry, nestedRoutesEntry = "" }) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs
64
- );
65
- found && (found.entryName = MAIN_ENTRY_NAME);
66
- }
67
- return defaults;
68
- };
69
- export {
70
- getBundleEntry
71
- };