@modern-js/app-tools 2.14.0 → 2.16.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 (269) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/cjs/analyze/constants.js +37 -61
  3. package/dist/cjs/analyze/generateCode.js +102 -127
  4. package/dist/cjs/analyze/getBundleEntry.js +33 -66
  5. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +61 -117
  6. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +61 -115
  7. package/dist/cjs/analyze/getClientRoutes/index.js +15 -28
  8. package/dist/cjs/analyze/getClientRoutes/utils.js +24 -48
  9. package/dist/cjs/analyze/getFileSystemEntry.js +39 -79
  10. package/dist/cjs/analyze/getHtmlTemplate.js +88 -98
  11. package/dist/cjs/analyze/getServerRoutes.js +67 -110
  12. package/dist/cjs/analyze/index.js +265 -257
  13. package/dist/cjs/analyze/isDefaultExportFunction.js +66 -44
  14. package/dist/cjs/analyze/makeLegalIdentifier.js +7 -25
  15. package/dist/cjs/analyze/nestedRoutes.js +99 -104
  16. package/dist/cjs/analyze/templates.js +49 -110
  17. package/dist/cjs/analyze/utils.js +98 -102
  18. package/dist/cjs/builder/builder-rspack/adapterCopy.js +58 -100
  19. package/dist/cjs/builder/builder-rspack/index.js +14 -30
  20. package/dist/cjs/builder/builder-webpack/adapterModern.js +33 -50
  21. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +16 -32
  22. package/dist/cjs/builder/builder-webpack/index.js +65 -46
  23. package/dist/cjs/builder/generator/createBuilderOptions.js +10 -26
  24. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +11 -27
  25. package/dist/cjs/builder/generator/getBuilderTargets.js +13 -29
  26. package/dist/cjs/builder/generator/index.js +61 -55
  27. package/dist/cjs/builder/index.js +53 -43
  28. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +13 -36
  29. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +90 -90
  30. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +108 -111
  31. package/dist/cjs/builder/shared/builderPlugins/index.js +20 -19
  32. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -30
  33. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +32 -38
  34. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +86 -116
  35. package/dist/cjs/builder/shared/bundlerPlugins/index.js +20 -19
  36. package/dist/cjs/builder/shared/createCopyInfo.js +16 -42
  37. package/dist/cjs/builder/shared/index.js +20 -19
  38. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +8 -24
  39. package/dist/cjs/builder/shared/types.js +4 -15
  40. package/dist/cjs/commands/build.js +23 -40
  41. package/dist/cjs/commands/deploy.js +7 -25
  42. package/dist/cjs/commands/dev.js +38 -57
  43. package/dist/cjs/commands/index.js +20 -19
  44. package/dist/cjs/commands/inspect.js +10 -30
  45. package/dist/cjs/commands/serve.js +28 -66
  46. package/dist/cjs/config/default.js +34 -34
  47. package/dist/cjs/config/index.js +20 -19
  48. package/dist/cjs/config/initialize/index.js +11 -29
  49. package/dist/cjs/config/initialize/inits.js +103 -82
  50. package/dist/cjs/config/legacy/createHtmlConfig.js +8 -40
  51. package/dist/cjs/config/legacy/createOutputConfig.js +8 -51
  52. package/dist/cjs/config/legacy/createSourceConfig.js +8 -38
  53. package/dist/cjs/config/legacy/createToolsConfig.js +8 -43
  54. package/dist/cjs/config/legacy/index.js +22 -46
  55. package/dist/cjs/defineConfig.js +16 -31
  56. package/dist/cjs/exports/server.js +7 -25
  57. package/dist/cjs/hooks.js +33 -51
  58. package/dist/cjs/index.js +185 -166
  59. package/dist/cjs/initialize/index.js +84 -100
  60. package/dist/cjs/locale/en.js +13 -27
  61. package/dist/cjs/locale/index.js +18 -28
  62. package/dist/cjs/locale/zh.js +13 -27
  63. package/dist/cjs/schema/Schema.js +27 -31
  64. package/dist/cjs/schema/index.js +141 -71
  65. package/dist/cjs/schema/legacy.js +273 -96
  66. package/dist/cjs/types/config/deploy.js +4 -15
  67. package/dist/cjs/types/config/dev.js +4 -15
  68. package/dist/cjs/types/config/experiments.js +4 -15
  69. package/dist/cjs/types/config/html.js +4 -15
  70. package/dist/cjs/types/config/index.js +18 -17
  71. package/dist/cjs/types/config/output.js +4 -15
  72. package/dist/cjs/types/config/performance.js +4 -15
  73. package/dist/cjs/types/config/security.js +4 -15
  74. package/dist/cjs/types/config/source.js +4 -15
  75. package/dist/cjs/types/config/tools.js +4 -15
  76. package/dist/cjs/types/hooks.js +4 -15
  77. package/dist/cjs/types/index.js +20 -19
  78. package/dist/cjs/types/legacyConfig/deploy.js +4 -15
  79. package/dist/cjs/types/legacyConfig/dev.js +4 -15
  80. package/dist/cjs/types/legacyConfig/index.js +4 -15
  81. package/dist/cjs/types/legacyConfig/output.js +4 -15
  82. package/dist/cjs/types/legacyConfig/source.js +4 -15
  83. package/dist/cjs/types/legacyConfig/tools.js +4 -15
  84. package/dist/cjs/types/utils.js +4 -15
  85. package/dist/cjs/utils/config.js +74 -79
  86. package/dist/cjs/utils/createServer.js +16 -42
  87. package/dist/cjs/utils/env.js +7 -25
  88. package/dist/cjs/utils/generateWatchFiles.js +31 -52
  89. package/dist/cjs/utils/getSelectedEntries.js +13 -35
  90. package/dist/cjs/utils/getServerInternalPlugins.js +8 -29
  91. package/dist/cjs/utils/printInstructions.js +10 -28
  92. package/dist/cjs/utils/restart.js +13 -31
  93. package/dist/cjs/utils/routes.js +18 -39
  94. package/dist/cjs/utils/types.js +4 -15
  95. package/dist/esm/analyze/constants.js +40 -41
  96. package/dist/esm/analyze/generateCode.js +477 -455
  97. package/dist/esm/analyze/getBundleEntry.js +53 -54
  98. package/dist/esm/analyze/getClientRoutes/getRoutes.js +201 -202
  99. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +199 -200
  100. package/dist/esm/analyze/getClientRoutes/index.js +2 -3
  101. package/dist/esm/analyze/getClientRoutes/utils.js +15 -15
  102. package/dist/esm/analyze/getFileSystemEntry.js +86 -87
  103. package/dist/esm/analyze/getHtmlTemplate.js +289 -278
  104. package/dist/esm/analyze/getServerRoutes.js +203 -190
  105. package/dist/esm/analyze/index.js +679 -651
  106. package/dist/esm/analyze/isDefaultExportFunction.js +38 -39
  107. package/dist/esm/analyze/makeLegalIdentifier.js +8 -9
  108. package/dist/esm/analyze/nestedRoutes.js +400 -392
  109. package/dist/esm/analyze/templates.js +536 -509
  110. package/dist/esm/analyze/utils.js +357 -336
  111. package/dist/esm/builder/builder-rspack/adapterCopy.js +347 -330
  112. package/dist/esm/builder/builder-rspack/index.js +8 -9
  113. package/dist/esm/builder/builder-webpack/adapterModern.js +51 -43
  114. package/dist/esm/builder/builder-webpack/createCopyPattern.js +31 -32
  115. package/dist/esm/builder/builder-webpack/index.js +266 -249
  116. package/dist/esm/builder/generator/createBuilderOptions.js +37 -38
  117. package/dist/esm/builder/generator/createBuilderProviderConfig.js +62 -63
  118. package/dist/esm/builder/generator/getBuilderTargets.js +13 -14
  119. package/dist/esm/builder/generator/index.js +203 -196
  120. package/dist/esm/builder/index.js +183 -176
  121. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +90 -91
  122. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +300 -291
  123. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +337 -329
  124. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +108 -97
  125. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +66 -64
  126. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +364 -337
  127. package/dist/esm/builder/shared/createCopyInfo.js +9 -10
  128. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +2 -3
  129. package/dist/esm/builder/shared/types.js +1 -1
  130. package/dist/esm/commands/build.js +279 -272
  131. package/dist/esm/commands/deploy.js +150 -144
  132. package/dist/esm/commands/dev.js +296 -289
  133. package/dist/esm/commands/inspect.js +144 -138
  134. package/dist/esm/commands/serve.js +241 -235
  135. package/dist/esm/config/default.js +202 -203
  136. package/dist/esm/config/initialize/index.js +7 -8
  137. package/dist/esm/config/initialize/inits.js +189 -181
  138. package/dist/esm/config/legacy/createHtmlConfig.js +17 -18
  139. package/dist/esm/config/legacy/createOutputConfig.js +41 -42
  140. package/dist/esm/config/legacy/createSourceConfig.js +38 -39
  141. package/dist/esm/config/legacy/createToolsConfig.js +24 -25
  142. package/dist/esm/config/legacy/index.js +31 -32
  143. package/dist/esm/defineConfig.js +52 -53
  144. package/dist/esm/exports/server.js +1 -2
  145. package/dist/esm/hooks.js +26 -27
  146. package/dist/esm/index.js +685 -671
  147. package/dist/esm/initialize/index.js +276 -269
  148. package/dist/esm/locale/en.js +36 -37
  149. package/dist/esm/locale/index.js +2 -2
  150. package/dist/esm/locale/zh.js +36 -37
  151. package/dist/esm/schema/Schema.js +255 -244
  152. package/dist/esm/schema/index.js +165 -165
  153. package/dist/esm/schema/legacy.js +316 -317
  154. package/dist/esm/types/config/deploy.js +1 -1
  155. package/dist/esm/types/config/dev.js +1 -1
  156. package/dist/esm/types/config/experiments.js +1 -1
  157. package/dist/esm/types/config/html.js +1 -1
  158. package/dist/esm/types/config/output.js +1 -1
  159. package/dist/esm/types/config/performance.js +1 -1
  160. package/dist/esm/types/config/security.js +1 -1
  161. package/dist/esm/types/config/source.js +1 -1
  162. package/dist/esm/types/config/tools.js +1 -1
  163. package/dist/esm/types/hooks.js +1 -1
  164. package/dist/esm/types/legacyConfig/deploy.js +1 -1
  165. package/dist/esm/types/legacyConfig/dev.js +1 -1
  166. package/dist/esm/types/legacyConfig/index.js +1 -1
  167. package/dist/esm/types/legacyConfig/output.js +1 -1
  168. package/dist/esm/types/legacyConfig/source.js +1 -1
  169. package/dist/esm/types/legacyConfig/tools.js +1 -1
  170. package/dist/esm/types/utils.js +1 -1
  171. package/dist/esm/utils/config.js +285 -278
  172. package/dist/esm/utils/createServer.js +242 -234
  173. package/dist/esm/utils/env.js +11 -12
  174. package/dist/esm/utils/generateWatchFiles.js +205 -190
  175. package/dist/esm/utils/getSelectedEntries.js +180 -173
  176. package/dist/esm/utils/getServerInternalPlugins.js +197 -191
  177. package/dist/esm/utils/printInstructions.js +147 -141
  178. package/dist/esm/utils/restart.js +179 -173
  179. package/dist/esm/utils/routes.js +146 -139
  180. package/dist/esm/utils/types.js +1 -1
  181. package/dist/esm-node/analyze/constants.js +31 -46
  182. package/dist/esm-node/analyze/generateCode.js +28 -94
  183. package/dist/esm-node/analyze/getBundleEntry.js +8 -27
  184. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +24 -65
  185. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +24 -63
  186. package/dist/esm-node/analyze/getClientRoutes/index.js +2 -6
  187. package/dist/esm-node/analyze/getClientRoutes/utils.js +5 -19
  188. package/dist/esm-node/analyze/getFileSystemEntry.js +10 -37
  189. package/dist/esm-node/analyze/getHtmlTemplate.js +29 -59
  190. package/dist/esm-node/analyze/getServerRoutes.js +43 -75
  191. package/dist/esm-node/analyze/index.js +208 -230
  192. package/dist/esm-node/analyze/isDefaultExportFunction.js +7 -5
  193. package/dist/esm-node/analyze/makeLegalIdentifier.js +1 -4
  194. package/dist/esm-node/analyze/nestedRoutes.js +23 -43
  195. package/dist/esm-node/analyze/templates.js +22 -69
  196. package/dist/esm-node/analyze/utils.js +66 -60
  197. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +40 -62
  198. package/dist/esm-node/builder/builder-rspack/index.js +4 -5
  199. package/dist/esm-node/builder/builder-webpack/adapterModern.js +24 -26
  200. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +3 -10
  201. package/dist/esm-node/builder/builder-webpack/index.js +13 -11
  202. package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -5
  203. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +5 -6
  204. package/dist/esm-node/builder/generator/getBuilderTargets.js +5 -11
  205. package/dist/esm-node/builder/generator/index.js +7 -16
  206. package/dist/esm-node/builder/index.js +2 -7
  207. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -6
  208. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +34 -60
  209. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +54 -74
  210. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +23 -8
  211. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +25 -16
  212. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +66 -76
  213. package/dist/esm-node/builder/shared/createCopyInfo.js +2 -8
  214. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +1 -4
  215. package/dist/esm-node/builder/shared/types.js +1 -0
  216. package/dist/esm-node/commands/build.js +7 -9
  217. package/dist/esm-node/commands/deploy.js +1 -4
  218. package/dist/esm-node/commands/dev.js +19 -27
  219. package/dist/esm-node/commands/inspect.js +3 -8
  220. package/dist/esm-node/commands/serve.js +7 -25
  221. package/dist/esm-node/config/default.js +20 -11
  222. package/dist/esm-node/config/initialize/index.js +1 -4
  223. package/dist/esm-node/config/initialize/inits.js +48 -54
  224. package/dist/esm-node/config/legacy/createHtmlConfig.js +2 -19
  225. package/dist/esm-node/config/legacy/createOutputConfig.js +2 -30
  226. package/dist/esm-node/config/legacy/createSourceConfig.js +2 -17
  227. package/dist/esm-node/config/legacy/createToolsConfig.js +2 -22
  228. package/dist/esm-node/config/legacy/index.js +3 -18
  229. package/dist/esm-node/defineConfig.js +7 -13
  230. package/dist/esm-node/exports/server.js +1 -4
  231. package/dist/esm-node/hooks.js +2 -9
  232. package/dist/esm-node/index.js +95 -120
  233. package/dist/esm-node/initialize/index.js +74 -87
  234. package/dist/esm-node/locale/en.js +7 -6
  235. package/dist/esm-node/locale/index.js +5 -5
  236. package/dist/esm-node/locale/zh.js +7 -6
  237. package/dist/esm-node/schema/Schema.js +19 -8
  238. package/dist/esm-node/schema/index.js +121 -36
  239. package/dist/esm-node/schema/legacy.js +262 -72
  240. package/dist/esm-node/types/config/deploy.js +1 -0
  241. package/dist/esm-node/types/config/dev.js +1 -0
  242. package/dist/esm-node/types/config/experiments.js +1 -0
  243. package/dist/esm-node/types/config/html.js +1 -0
  244. package/dist/esm-node/types/config/output.js +1 -0
  245. package/dist/esm-node/types/config/performance.js +1 -0
  246. package/dist/esm-node/types/config/security.js +1 -0
  247. package/dist/esm-node/types/config/source.js +1 -0
  248. package/dist/esm-node/types/config/tools.js +1 -0
  249. package/dist/esm-node/types/hooks.js +1 -0
  250. package/dist/esm-node/types/legacyConfig/deploy.js +1 -0
  251. package/dist/esm-node/types/legacyConfig/dev.js +1 -0
  252. package/dist/esm-node/types/legacyConfig/index.js +1 -0
  253. package/dist/esm-node/types/legacyConfig/output.js +1 -0
  254. package/dist/esm-node/types/legacyConfig/source.js +1 -0
  255. package/dist/esm-node/types/legacyConfig/tools.js +1 -0
  256. package/dist/esm-node/types/utils.js +1 -0
  257. package/dist/esm-node/utils/config.js +16 -47
  258. package/dist/esm-node/utils/createServer.js +5 -12
  259. package/dist/esm-node/utils/env.js +1 -4
  260. package/dist/esm-node/utils/generateWatchFiles.js +13 -20
  261. package/dist/esm-node/utils/getSelectedEntries.js +2 -9
  262. package/dist/esm-node/utils/getServerInternalPlugins.js +2 -8
  263. package/dist/esm-node/utils/printInstructions.js +1 -4
  264. package/dist/esm-node/utils/restart.js +2 -11
  265. package/dist/esm-node/utils/routes.js +4 -4
  266. package/dist/esm-node/utils/types.js +1 -0
  267. package/dist/types/index.d.ts +2 -2
  268. package/lib/types.d.ts +1 -0
  269. package/package.json +29 -25
@@ -7,16 +7,11 @@ const replaceDynamicPath = (routePath) => {
7
7
  return routePath.replace(/\[(.*?)\]/g, ":$1");
8
8
  };
9
9
  const createIndexRoute = (routeInfo, rootDir, filename, entryName) => {
10
- return createRoute(
11
- {
12
- ...routeInfo,
13
- index: true,
14
- children: void 0
15
- },
16
- rootDir,
17
- filename,
18
- entryName
19
- );
10
+ return createRoute({
11
+ ...routeInfo,
12
+ index: true,
13
+ children: void 0
14
+ }, rootDir, filename, entryName);
20
15
  };
21
16
  const createRoute = (routeInfo, rootDir, filename, entryName) => {
22
17
  const id = getRouteId(filename, rootDir, entryName);
@@ -26,8 +21,8 @@ const createRoute = (routeInfo, rootDir, filename, entryName) => {
26
21
  type: "nested"
27
22
  };
28
23
  };
29
- const walk = async (dirname, rootDir, alias, entryName) => {
30
- var _a, _b, _c, _d;
24
+ export const walk = async (dirname, rootDir, alias, entryName) => {
25
+ var _route_children;
31
26
  if (!await fs.pathExists(dirname)) {
32
27
  return null;
33
28
  }
@@ -47,7 +42,7 @@ const walk = async (dirname, rootDir, alias, entryName) => {
47
42
  }
48
43
  routePath = replaceDynamicPath(routePath);
49
44
  const route = {
50
- path: routePath == null ? void 0 : routePath.replace(/\$$/, "?"),
45
+ path: routePath === null || routePath === void 0 ? void 0 : routePath.replace(/\$$/, "?"),
51
46
  children: [],
52
47
  isRoot
53
48
  };
@@ -65,7 +60,8 @@ const walk = async (dirname, rootDir, alias, entryName) => {
65
60
  if (isDirectory2) {
66
61
  const childRoute = await walk(itemPath, rootDir, alias, entryName);
67
62
  if (childRoute) {
68
- (_a = route.children) == null ? void 0 : _a.push(childRoute);
63
+ var _route_children1;
64
+ (_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.push(childRoute);
69
65
  }
70
66
  }
71
67
  if (extname && (!JS_EXTENSIONS.includes(extname) || !conventionNames.includes(itemWithoutExt))) {
@@ -91,39 +87,31 @@ const walk = async (dirname, rootDir, alias, entryName) => {
91
87
  pageConfigFile = itemPath;
92
88
  }
93
89
  if (itemWithoutExt === NESTED_ROUTE.PAGE_FILE) {
94
- pageRoute = createIndexRoute(
95
- {
96
- _component: replaceWithAlias(alias.basename, itemPath, alias.name)
97
- },
98
- rootDir,
99
- itemPath,
100
- entryName
101
- );
90
+ var _route_children2;
91
+ pageRoute = createIndexRoute({
92
+ _component: replaceWithAlias(alias.basename, itemPath, alias.name)
93
+ }, rootDir, itemPath, entryName);
102
94
  if (pageLoaderFile) {
103
95
  pageRoute.loader = pageLoaderFile;
104
96
  }
105
97
  if (pageConfigFile) {
106
98
  pageRoute.config = pageConfigFile;
107
99
  }
108
- (_b = route.children) == null ? void 0 : _b.push(pageRoute);
100
+ (_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(pageRoute);
109
101
  }
110
102
  if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
111
103
  splatLoaderFile = itemPath;
112
104
  }
113
105
  if (itemWithoutExt === NESTED_ROUTE.SPLATE_FILE) {
114
- splatRoute = createRoute(
115
- {
116
- _component: replaceWithAlias(alias.basename, itemPath, alias.name),
117
- path: "*"
118
- },
119
- rootDir,
120
- itemPath,
121
- entryName
122
- );
106
+ var _route_children3;
107
+ splatRoute = createRoute({
108
+ _component: replaceWithAlias(alias.basename, itemPath, alias.name),
109
+ path: "*"
110
+ }, rootDir, itemPath, entryName);
123
111
  if (splatLoaderFile) {
124
112
  splatRoute.loader = splatLoaderFile;
125
113
  }
126
- (_c = route.children) == null ? void 0 : _c.push(splatRoute);
114
+ (_route_children3 = route.children) === null || _route_children3 === void 0 ? void 0 : _route_children3.push(splatRoute);
127
115
  }
128
116
  if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
129
117
  route.loading = replaceWithAlias(alias.basename, itemPath, alias.name);
@@ -132,16 +120,11 @@ const walk = async (dirname, rootDir, alias, entryName) => {
132
120
  route.error = replaceWithAlias(alias.basename, itemPath, alias.name);
133
121
  }
134
122
  }
135
- let finalRoute = createRoute(
136
- route,
137
- rootDir,
138
- path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`),
139
- entryName
140
- );
123
+ let finalRoute = createRoute(route, rootDir, path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`), entryName);
141
124
  if (isPathlessLayout) {
142
125
  delete finalRoute.path;
143
126
  }
144
- route.children = (_d = route.children) == null ? void 0 : _d.filter((childRoute) => childRoute);
127
+ route.children = (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.filter((childRoute) => childRoute);
145
128
  if (route.children && route.children.length === 0 && !route.index) {
146
129
  return null;
147
130
  }
@@ -157,6 +140,3 @@ const walk = async (dirname, rootDir, alias, entryName) => {
157
140
  }
158
141
  return finalRoute;
159
142
  };
160
- export {
161
- walk
162
- };
@@ -2,12 +2,7 @@ import path from "path";
2
2
  import { fs, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
3
3
  import { APP_CONFIG_NAME, TEMP_LOADERS_DIR } from "./constants";
4
4
  import { getServerLoadersFile } from "./utils";
5
- const index = ({
6
- mountId,
7
- imports,
8
- renderFunction: renderFunction2,
9
- exportStatement
10
- }) => `
5
+ export const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
11
6
  const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
12
7
  const IS_REACT18 = process.env.IS_REACT18 === 'true';
13
8
  const MOUNT_ID = '${mountId}';
@@ -26,11 +21,7 @@ AppWrapper = render();
26
21
 
27
22
  ${exportStatement};
28
23
  `;
29
- const renderFunction = ({
30
- plugins,
31
- customBootstrap,
32
- fileSystemRoutes: fileSystemRoutes2
33
- }) => {
24
+ export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
34
25
  const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
35
26
  return `
36
27
  const finalAppConfig = {
@@ -40,9 +31,7 @@ const renderFunction = ({
40
31
 
41
32
  AppWrapper = createApp({
42
33
  plugins: [
43
- ${plugins.map(
44
- ({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`
45
- ).join("\n")}
34
+ ${plugins.map(({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`).join("\n")}
46
35
  ]
47
36
  })(${fileSystemRoutes2 ? "" : `App`})
48
37
 
@@ -59,7 +48,7 @@ const renderFunction = ({
59
48
  return AppWrapper
60
49
  `;
61
50
  };
62
- const html = (partials) => `
51
+ export const html = (partials) => `
63
52
  <!DOCTYPE html>
64
53
  <html>
65
54
  <head>
@@ -85,15 +74,13 @@ const html = (partials) => `
85
74
 
86
75
  </html>
87
76
  `;
88
- const routesForServer = ({
89
- routes
90
- }) => {
77
+ export const routesForServer = ({ routes }) => {
91
78
  const loaders = [];
92
79
  const traverseRouteTree = (route) => {
93
- var _a;
94
80
  let children;
95
81
  if ("children" in route && route.children) {
96
- children = (_a = route == null ? void 0 : route.children) == null ? void 0 : _a.map(traverseRouteTree);
82
+ var _route_children;
83
+ children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
97
84
  }
98
85
  let loader;
99
86
  if (route.type === "nested") {
@@ -115,10 +102,7 @@ const routesForServer = ({
115
102
  for (const route of routes) {
116
103
  if ("type" in route) {
117
104
  const newRoute = traverseRouteTree(route);
118
- routesCode += `${JSON.stringify(newRoute, null, 2).replace(
119
- /"(loader_[^"]+)"/g,
120
- "$1"
121
- )},`;
105
+ routesCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loader_[^"]+)"/g, "$1")},`;
122
106
  } else {
123
107
  routesCode += `${JSON.stringify(route, null, 2)}`;
124
108
  }
@@ -137,14 +121,7 @@ const routesForServer = ({
137
121
  `;
138
122
  };
139
123
  const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
140
- const fileSystemRoutes = async ({
141
- routes,
142
- ssrMode,
143
- nestedRoutesEntry,
144
- entryName,
145
- internalDirectory,
146
- splitRouteChunks = true
147
- }) => {
124
+ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
148
125
  const components = [];
149
126
  const loadings = [];
150
127
  const errors = [];
@@ -152,12 +129,7 @@ const fileSystemRoutes = async ({
152
129
  const loadersMap = {};
153
130
  const configs = [];
154
131
  const configsMap = {};
155
- const loadersMapFile = path.join(
156
- internalDirectory,
157
- entryName,
158
- TEMP_LOADERS_DIR,
159
- "map.json"
160
- );
132
+ const loadersMapFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, "map.json");
161
133
  const importLazyCode = `
162
134
  import { lazy } from "react";
163
135
  import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
@@ -173,10 +145,10 @@ const fileSystemRoutes = async ({
173
145
  return "";
174
146
  };
175
147
  const traverseRouteTree = (route) => {
176
- var _a;
177
148
  let children;
178
149
  if ("children" in route && route.children) {
179
- children = (_a = route == null ? void 0 : route.children) == null ? void 0 : _a.map(traverseRouteTree);
150
+ var _route_children;
151
+ children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
180
152
  }
181
153
  let loading;
182
154
  let error;
@@ -273,7 +245,10 @@ const fileSystemRoutes = async ({
273
245
  ...route,
274
246
  component
275
247
  };
276
- const keywords = ["component", "lazyImport"];
248
+ const keywords = [
249
+ "component",
250
+ "lazyImport"
251
+ ];
277
252
  const routeStr = JSON.stringify(finalRoute, null, 2);
278
253
  const regs = keywords.map(createMatchReg);
279
254
  const newRouteStr = regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
@@ -297,14 +272,10 @@ const fileSystemRoutes = async ({
297
272
  let importLoadersCode = "";
298
273
  for (const [key, loaderInfo] of Object.entries(loadersMap)) {
299
274
  if (loaderInfo.inline) {
300
- importLoadersCode += `import { loader as ${key} } from "${slash(
301
- loaderInfo.filePath
302
- )}${getDataLoaderPath(key)}";
275
+ importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key)}";
303
276
  `;
304
277
  } else {
305
- importLoadersCode += `import ${key} from "${slash(
306
- loaderInfo.filePath
307
- )}${getDataLoaderPath(key)}";
278
+ importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key)}";
308
279
  `;
309
280
  }
310
281
  }
@@ -326,34 +297,16 @@ const fileSystemRoutes = async ({
326
297
  ${routeComponentsCode}
327
298
  `;
328
299
  };
329
- function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
300
+ export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
330
301
  const { entryName } = entrypoint;
331
302
  const { packageName, internalDirectory } = appContext;
332
- const ssr = getEntryOptions(
333
- entryName,
334
- config.server.ssr,
335
- config.server.ssrByEntries,
336
- packageName
337
- );
303
+ const ssr = getEntryOptions(entryName, config.server.ssr, config.server.ssrByEntries, packageName);
338
304
  const ssg = isSSGEntry(config, entryName, entrypoints);
339
305
  if (entrypoint.nestedRoutesEntry && (ssr || ssg)) {
340
306
  const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
341
- const serverLoadersFile = getServerLoadersFile(
342
- internalDirectory,
343
- entryName
344
- );
345
- const combinedModule = `export * from "${slash(
346
- serverLoaderRuntime
347
- )}"; export * from "${slash(serverLoadersFile)}"`;
307
+ const serverLoadersFile = getServerLoadersFile(internalDirectory, entryName);
308
+ const combinedModule = `export * from "${slash(serverLoaderRuntime)}"; export * from "${slash(serverLoadersFile)}"`;
348
309
  return combinedModule;
349
310
  }
350
311
  return null;
351
312
  }
352
- export {
353
- fileSystemRoutes,
354
- html,
355
- index,
356
- renderFunction,
357
- routesForServer,
358
- ssrLoaderCombinedModule
359
- };
@@ -3,63 +3,77 @@ import path from "path";
3
3
  import { isReact18, normalizeToPosixPath, fs as fse } from "@modern-js/utils";
4
4
  import { transform } from "esbuild";
5
5
  import { parse } from "es-module-lexer";
6
- import {
7
- FILE_SYSTEM_ROUTES_FILE_NAME,
8
- JS_EXTENSIONS,
9
- LOADER_EXPORT_NAME
10
- } from "./constants";
11
- const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
6
+ import { FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
7
+ export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
12
8
  const filePath = path.join(dir, filename);
13
9
  if (fs.statSync(filePath).isDirectory()) {
14
- return [...previous, ...walkDirectory(filePath)];
10
+ return [
11
+ ...previous,
12
+ ...walkDirectory(filePath)
13
+ ];
15
14
  } else {
16
- return [...previous, filePath];
15
+ return [
16
+ ...previous,
17
+ filePath
18
+ ];
17
19
  }
18
20
  }, []);
19
- const getDefaultImports = ({
20
- entrypoint,
21
- srcDirectory,
22
- internalSrcAlias,
23
- internalDirAlias,
24
- internalDirectory
25
- }) => {
21
+ export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
26
22
  const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
27
23
  const imports = [
28
24
  {
29
- specifiers: [{ local: "React" }],
25
+ specifiers: [
26
+ {
27
+ local: "React"
28
+ }
29
+ ],
30
30
  value: "react"
31
31
  },
32
32
  {
33
- specifiers: [{ local: "ReactDOM" }],
33
+ specifiers: [
34
+ {
35
+ local: "ReactDOM"
36
+ }
37
+ ],
34
38
  value: isReact18(path.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
35
39
  },
36
40
  {
37
- specifiers: [{ imported: "createApp" }, { imported: "bootstrap" }],
41
+ specifiers: [
42
+ {
43
+ imported: "createApp"
44
+ },
45
+ {
46
+ imported: "bootstrap"
47
+ }
48
+ ],
38
49
  value: "@modern-js/runtime"
39
50
  },
40
51
  customBootstrap && {
41
- specifiers: [{ local: "customBootstrap" }],
42
- value: normalizeToPosixPath(
43
- customBootstrap.replace(srcDirectory, internalSrcAlias)
44
- )
52
+ specifiers: [
53
+ {
54
+ local: "customBootstrap"
55
+ }
56
+ ],
57
+ value: normalizeToPosixPath(customBootstrap.replace(srcDirectory, internalSrcAlias))
45
58
  }
46
59
  ].filter(Boolean);
47
60
  if (fileSystemRoutes) {
48
61
  const route = {
49
- specifiers: [{ imported: "routes" }],
50
- value: normalizeToPosixPath(
51
- `${internalDirAlias}/${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME.replace(
52
- ".js",
53
- ""
54
- )}`
55
- )
62
+ specifiers: [
63
+ {
64
+ imported: "routes"
65
+ }
66
+ ],
67
+ value: normalizeToPosixPath(`${internalDirAlias}/${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME.replace(".js", "")}`)
56
68
  };
57
69
  if (fileSystemRoutes.globalApp) {
58
70
  imports.push({
59
- specifiers: [{ local: "App" }],
60
- value: normalizeToPosixPath(
61
- fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias)
62
- )
71
+ specifiers: [
72
+ {
73
+ local: "App"
74
+ }
75
+ ],
76
+ value: normalizeToPosixPath(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
63
77
  });
64
78
  } else {
65
79
  route.initialize = "const App = false;";
@@ -67,36 +81,38 @@ const getDefaultImports = ({
67
81
  imports.push(route);
68
82
  } else {
69
83
  imports.push({
70
- specifiers: [{ local: "App" }],
71
- value: normalizeToPosixPath(
72
- entry.replace(srcDirectory, internalSrcAlias)
73
- )
84
+ specifiers: [
85
+ {
86
+ local: "App"
87
+ }
88
+ ],
89
+ value: normalizeToPosixPath(entry.replace(srcDirectory, internalSrcAlias))
74
90
  });
75
91
  }
76
92
  return imports;
77
93
  };
78
- const isPageComponentFile = (filePath) => {
94
+ export const isPageComponentFile = (filePath) => {
79
95
  if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
80
96
  return false;
81
97
  }
82
- if ([".js", ".jsx", ".ts", ".tsx"].includes(path.extname(filePath))) {
98
+ if ([
99
+ ".js",
100
+ ".jsx",
101
+ ".ts",
102
+ ".tsx"
103
+ ].includes(path.extname(filePath))) {
83
104
  return true;
84
105
  }
85
106
  return false;
86
107
  };
87
- const replaceWithAlias = (base, filePath, alias) => {
108
+ export const replaceWithAlias = (base, filePath, alias) => {
88
109
  if (filePath.includes(base)) {
89
- return normalizeToPosixPath(
90
- path.join(alias, path.relative(base, filePath))
91
- );
110
+ return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
92
111
  } else {
93
112
  return filePath;
94
113
  }
95
114
  };
96
- const parseModule = async ({
97
- source,
98
- filename
99
- }) => {
115
+ export const parseModule = async ({ source, filename }) => {
100
116
  let content = source;
101
117
  if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
102
118
  const result = await transform(content, {
@@ -107,7 +123,7 @@ const parseModule = async ({
107
123
  }
108
124
  return await parse(content);
109
125
  };
110
- const hasLoader = async (filename) => {
126
+ export const hasLoader = async (filename) => {
111
127
  const source = await fse.readFile(filename);
112
128
  const [, moduleExports] = await parseModule({
113
129
  source: source.toString(),
@@ -115,19 +131,9 @@ const hasLoader = async (filename) => {
115
131
  });
116
132
  return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
117
133
  };
118
- const getServerLoadersFile = (internalDirectory, entryName) => {
134
+ export const getServerLoadersFile = (internalDirectory, entryName) => {
119
135
  return path.join(internalDirectory, entryName, "route-server-loaders.js");
120
136
  };
121
- const getServerCombinedModueFile = (internalDirectory, entryName) => {
137
+ export const getServerCombinedModueFile = (internalDirectory, entryName) => {
122
138
  return path.join(internalDirectory, entryName, "server-loader-combined.js");
123
139
  };
124
- export {
125
- getDefaultImports,
126
- getServerCombinedModueFile,
127
- getServerLoadersFile,
128
- hasLoader,
129
- isPageComponentFile,
130
- parseModule,
131
- replaceWithAlias,
132
- walkDirectory
133
- };
@@ -2,71 +2,52 @@ import path from "path";
2
2
  import fs from "@modern-js/utils/fs-extra";
3
3
  import { logger, removeTailSlash } from "@modern-js/utils";
4
4
  import { createCopyInfo } from "../shared";
5
- const builderPluginAdpaterCopy = (options) => ({
6
- name: "builder-plugin-adapter-rspack-copy",
7
- setup(api) {
8
- let publicPath;
9
- api.modifyRspackConfig((config) => {
10
- var _a, _b, _c;
11
- config.builtins = {
12
- ...config.builtins || {},
13
- copy: {
14
- patterns: [
15
- ...transformCopy((_b = (_a = config.builtins) == null ? void 0 : _a.copy) == null ? void 0 : _b.patterns),
16
- ...createConfigBuiltinCopy(options)
17
- ]
5
+ export const builderPluginAdpaterCopy = (options) => {
6
+ return {
7
+ name: "builder-plugin-adapter-rspack-copy",
8
+ setup(api) {
9
+ let publicPath;
10
+ api.modifyRspackConfig((config) => {
11
+ var _config_builtins, _config_builtins_copy, _config_output;
12
+ config.builtins = {
13
+ ...config.builtins || {},
14
+ copy: {
15
+ patterns: [
16
+ ...transformCopy((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns),
17
+ ...createConfigBuiltinCopy(options)
18
+ ]
19
+ }
20
+ };
21
+ publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
22
+ });
23
+ api.onDevCompileDone(async () => {
24
+ await transformHtmlFiles();
25
+ });
26
+ api.onAfterBuild(async () => {
27
+ await transformHtmlFiles();
28
+ });
29
+ async function transformHtmlFiles() {
30
+ var _normalizedConfig_output_distPath;
31
+ const { normalizedConfig } = options;
32
+ const publicDir = path.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
33
+ if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
34
+ return;
18
35
  }
19
- };
20
- publicPath = (_c = config.output) == null ? void 0 : _c.publicPath;
21
- });
22
- api.onDevCompileDone(async () => {
23
- await transformHtmlFiles();
24
- });
25
- api.onAfterBuild(async () => {
26
- await transformHtmlFiles();
27
- });
28
- async function transformHtmlFiles() {
29
- var _a;
30
- const { normalizedConfig } = options;
31
- const publicDir = path.resolve(
32
- ((_a = normalizedConfig.output.distPath) == null ? void 0 : _a.root) || "./dist",
33
- "./public"
34
- );
35
- if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
36
- return;
37
- }
38
- const HTML_REGEXP = /\.html?$/;
39
- const filepaths = (await fs.readdir(publicDir)).map(
40
- (file) => path.resolve(publicDir, file)
41
- );
42
- await Promise.all(
43
- filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
36
+ const HTML_REGEXP = /\.html?$/;
37
+ const filepaths = (await fs.readdir(publicDir)).map((file) => path.resolve(publicDir, file));
38
+ await Promise.all(filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
44
39
  const content = await fs.readFile(file, "utf-8");
45
40
  if (publicPath) {
46
- await fs.writeFile(
47
- file,
48
- content.replace(
49
- /<%=\s*assetPrefix\s*%>/g,
50
- removeTailSlash(publicPath)
51
- )
52
- );
41
+ await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(publicPath)));
53
42
  } else {
54
- logger.warn(
55
- "Expect get a string from `publicPath`, but receive `undefined`."
56
- );
57
- await fs.writeFile(
58
- file,
59
- content.replace(
60
- /<%=\s*assetPrefix\s*%>/g,
61
- removeTailSlash("/")
62
- )
63
- );
43
+ logger.warn("Expect get a string from `publicPath`, but receive `undefined`.");
44
+ await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash("/")));
64
45
  }
65
- })
66
- );
46
+ }));
47
+ }
67
48
  }
68
- }
69
- });
49
+ };
50
+ };
70
51
  function transformCopy(patterns) {
71
52
  if (patterns) {
72
53
  patterns.map((value) => {
@@ -98,6 +79,3 @@ function createConfigBuiltinCopy(options) {
98
79
  }
99
80
  ];
100
81
  }
101
- export {
102
- builderPluginAdpaterCopy
103
- };
@@ -1,13 +1,12 @@
1
1
  import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
2
2
  import { generateBuilder } from "../generator";
3
3
  import { builderPluginAdpaterCopy } from "./adapterCopy";
4
- function createRspackBuilderForModern(options) {
4
+ export function createRspackBuilderForModern(options) {
5
5
  return generateBuilder(options, builderRspackProvider, {
6
6
  modifyBuilderInstance(builder) {
7
- builder.addPlugins([builderPluginAdpaterCopy(options)]);
7
+ builder.addPlugins([
8
+ builderPluginAdpaterCopy(options)
9
+ ]);
8
10
  }
9
11
  });
10
12
  }
11
- export {
12
- createRspackBuilderForModern
13
- };