@modern-js/app-tools 2.11.1-alpha.0 → 2.12.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 (275) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +9 -12
  3. package/dist/cjs/utils/restart.js +1 -1
  4. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +11 -14
  5. package/dist/esm/utils/restart.js +2 -2
  6. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +10 -13
  7. package/dist/esm-node/utils/restart.js +2 -2
  8. package/package.json +24 -24
  9. package/dist/js/modern/analyze/constants.js +0 -56
  10. package/dist/js/modern/analyze/generateCode.js +0 -247
  11. package/dist/js/modern/analyze/getBundleEntry.js +0 -71
  12. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
  13. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
  14. package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
  15. package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
  16. package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
  17. package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
  18. package/dist/js/modern/analyze/getServerRoutes.js +0 -178
  19. package/dist/js/modern/analyze/index.js +0 -333
  20. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
  21. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
  22. package/dist/js/modern/analyze/nestedRoutes.js +0 -186
  23. package/dist/js/modern/analyze/templates.js +0 -328
  24. package/dist/js/modern/analyze/utils.js +0 -141
  25. package/dist/js/modern/builder/builder-rspack/index.js +0 -8
  26. package/dist/js/modern/builder/builder-webpack/builderPlugins/compatModern.js +0 -41
  27. package/dist/js/modern/builder/builder-webpack/index.js +0 -93
  28. package/dist/js/modern/builder/builder-webpack/webpackPlugins/RouterPlugin.js +0 -116
  29. package/dist/js/modern/builder/builder-webpack/webpackPlugins/index.js +0 -1
  30. package/dist/js/modern/builder/generator/createBuilderOptions.js +0 -24
  31. package/dist/js/modern/builder/generator/createBuilderProviderConfig.js +0 -39
  32. package/dist/js/modern/builder/generator/getBuilderTargets.js +0 -21
  33. package/dist/js/modern/builder/generator/index.js +0 -53
  34. package/dist/js/modern/builder/index.js +0 -39
  35. package/dist/js/modern/builder/shared/builderPlugins/adapterModern.js +0 -219
  36. package/dist/js/modern/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -27
  37. package/dist/js/modern/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -34
  38. package/dist/js/modern/builder/shared/createCopyPattern.js +0 -46
  39. package/dist/js/modern/builder/shared/index.js +0 -3
  40. package/dist/js/modern/builder/shared/loaders/serverModuleLoader.js +0 -7
  41. package/dist/js/modern/builder/shared/types.js +0 -0
  42. package/dist/js/modern/commands/build.js +0 -91
  43. package/dist/js/modern/commands/deploy.js +0 -28
  44. package/dist/js/modern/commands/dev.js +0 -109
  45. package/dist/js/modern/commands/index.js +0 -3
  46. package/dist/js/modern/commands/inspect.js +0 -38
  47. package/dist/js/modern/commands/serve.js +0 -54
  48. package/dist/js/modern/config/default.js +0 -175
  49. package/dist/js/modern/config/index.js +0 -3
  50. package/dist/js/modern/config/initialize/index.js +0 -12
  51. package/dist/js/modern/config/initialize/inits.js +0 -154
  52. package/dist/js/modern/config/legacy/createHtmlConfig.js +0 -35
  53. package/dist/js/modern/config/legacy/createOutputConfig.js +0 -68
  54. package/dist/js/modern/config/legacy/createSourceConfig.js +0 -39
  55. package/dist/js/modern/config/legacy/createToolsConfig.js +0 -42
  56. package/dist/js/modern/config/legacy/index.js +0 -51
  57. package/dist/js/modern/defineConfig.js +0 -27
  58. package/dist/js/modern/exports/server.js +0 -4
  59. package/dist/js/modern/hooks.js +0 -35
  60. package/dist/js/modern/index.js +0 -221
  61. package/dist/js/modern/initialize/index.js +0 -132
  62. package/dist/js/modern/locale/en.js +0 -36
  63. package/dist/js/modern/locale/index.js +0 -9
  64. package/dist/js/modern/locale/zh.js +0 -36
  65. package/dist/js/modern/schema/Schema.js +0 -40
  66. package/dist/js/modern/schema/index.js +0 -88
  67. package/dist/js/modern/schema/legacy.js +0 -148
  68. package/dist/js/modern/types/config/deploy.js +0 -0
  69. package/dist/js/modern/types/config/dev.js +0 -0
  70. package/dist/js/modern/types/config/experiments.js +0 -0
  71. package/dist/js/modern/types/config/html.js +0 -0
  72. package/dist/js/modern/types/config/index.js +0 -1
  73. package/dist/js/modern/types/config/output.js +0 -0
  74. package/dist/js/modern/types/config/performance.js +0 -0
  75. package/dist/js/modern/types/config/security.js +0 -0
  76. package/dist/js/modern/types/config/source.js +0 -0
  77. package/dist/js/modern/types/config/tools.js +0 -0
  78. package/dist/js/modern/types/hooks.js +0 -0
  79. package/dist/js/modern/types/index.js +0 -3
  80. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  81. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  82. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  83. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  84. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  85. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  86. package/dist/js/modern/types/utils.js +0 -0
  87. package/dist/js/modern/utils/config.js +0 -128
  88. package/dist/js/modern/utils/createServer.js +0 -75
  89. package/dist/js/modern/utils/env.js +0 -15
  90. package/dist/js/modern/utils/generateWatchFiles.js +0 -55
  91. package/dist/js/modern/utils/getSelectedEntries.js +0 -58
  92. package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
  93. package/dist/js/modern/utils/language.js +0 -8
  94. package/dist/js/modern/utils/printInstructions.js +0 -31
  95. package/dist/js/modern/utils/restart.js +0 -44
  96. package/dist/js/modern/utils/routes.js +0 -30
  97. package/dist/js/modern/utils/types.js +0 -0
  98. package/dist/js/node/analyze/constants.js +0 -100
  99. package/dist/js/node/analyze/generateCode.js +0 -271
  100. package/dist/js/node/analyze/getBundleEntry.js +0 -95
  101. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
  102. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
  103. package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
  104. package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
  105. package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
  106. package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
  107. package/dist/js/node/analyze/getServerRoutes.js +0 -196
  108. package/dist/js/node/analyze/index.js +0 -340
  109. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
  110. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
  111. package/dist/js/node/analyze/nestedRoutes.js +0 -213
  112. package/dist/js/node/analyze/templates.js +0 -359
  113. package/dist/js/node/analyze/utils.js +0 -172
  114. package/dist/js/node/builder/builder-rspack/index.js +0 -31
  115. package/dist/js/node/builder/builder-webpack/builderPlugins/compatModern.js +0 -64
  116. package/dist/js/node/builder/builder-webpack/index.js +0 -118
  117. package/dist/js/node/builder/builder-webpack/webpackPlugins/RouterPlugin.js +0 -140
  118. package/dist/js/node/builder/builder-webpack/webpackPlugins/index.js +0 -17
  119. package/dist/js/node/builder/generator/createBuilderOptions.js +0 -47
  120. package/dist/js/node/builder/generator/createBuilderProviderConfig.js +0 -60
  121. package/dist/js/node/builder/generator/getBuilderTargets.js +0 -39
  122. package/dist/js/node/builder/generator/index.js +0 -82
  123. package/dist/js/node/builder/index.js +0 -68
  124. package/dist/js/node/builder/shared/builderPlugins/adapterModern.js +0 -245
  125. package/dist/js/node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -50
  126. package/dist/js/node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -57
  127. package/dist/js/node/builder/shared/createCopyPattern.js +0 -75
  128. package/dist/js/node/builder/shared/index.js +0 -19
  129. package/dist/js/node/builder/shared/loaders/serverModuleLoader.js +0 -28
  130. package/dist/js/node/builder/shared/types.js +0 -15
  131. package/dist/js/node/commands/build.js +0 -112
  132. package/dist/js/node/commands/deploy.js +0 -51
  133. package/dist/js/node/commands/dev.js +0 -126
  134. package/dist/js/node/commands/index.js +0 -19
  135. package/dist/js/node/commands/inspect.js +0 -61
  136. package/dist/js/node/commands/serve.js +0 -83
  137. package/dist/js/node/config/default.js +0 -197
  138. package/dist/js/node/config/index.js +0 -19
  139. package/dist/js/node/config/initialize/index.js +0 -35
  140. package/dist/js/node/config/initialize/inits.js +0 -177
  141. package/dist/js/node/config/legacy/createHtmlConfig.js +0 -58
  142. package/dist/js/node/config/legacy/createOutputConfig.js +0 -91
  143. package/dist/js/node/config/legacy/createSourceConfig.js +0 -62
  144. package/dist/js/node/config/legacy/createToolsConfig.js +0 -65
  145. package/dist/js/node/config/legacy/index.js +0 -75
  146. package/dist/js/node/defineConfig.js +0 -49
  147. package/dist/js/node/exports/server.js +0 -27
  148. package/dist/js/node/hooks.js +0 -54
  149. package/dist/js/node/index.js +0 -245
  150. package/dist/js/node/initialize/index.js +0 -141
  151. package/dist/js/node/locale/en.js +0 -59
  152. package/dist/js/node/locale/index.js +0 -33
  153. package/dist/js/node/locale/zh.js +0 -59
  154. package/dist/js/node/schema/Schema.js +0 -63
  155. package/dist/js/node/schema/index.js +0 -118
  156. package/dist/js/node/schema/legacy.js +0 -169
  157. package/dist/js/node/types/config/deploy.js +0 -15
  158. package/dist/js/node/types/config/dev.js +0 -15
  159. package/dist/js/node/types/config/experiments.js +0 -15
  160. package/dist/js/node/types/config/html.js +0 -15
  161. package/dist/js/node/types/config/index.js +0 -17
  162. package/dist/js/node/types/config/output.js +0 -15
  163. package/dist/js/node/types/config/performance.js +0 -15
  164. package/dist/js/node/types/config/security.js +0 -15
  165. package/dist/js/node/types/config/source.js +0 -15
  166. package/dist/js/node/types/config/tools.js +0 -15
  167. package/dist/js/node/types/hooks.js +0 -15
  168. package/dist/js/node/types/index.js +0 -19
  169. package/dist/js/node/types/legacyConfig/deploy.js +0 -15
  170. package/dist/js/node/types/legacyConfig/dev.js +0 -15
  171. package/dist/js/node/types/legacyConfig/index.js +0 -15
  172. package/dist/js/node/types/legacyConfig/output.js +0 -15
  173. package/dist/js/node/types/legacyConfig/source.js +0 -15
  174. package/dist/js/node/types/legacyConfig/tools.js +0 -15
  175. package/dist/js/node/types/utils.js +0 -15
  176. package/dist/js/node/utils/config.js +0 -153
  177. package/dist/js/node/utils/createServer.js +0 -106
  178. package/dist/js/node/utils/env.js +0 -38
  179. package/dist/js/node/utils/generateWatchFiles.js +0 -85
  180. package/dist/js/node/utils/getSelectedEntries.js +0 -81
  181. package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
  182. package/dist/js/node/utils/language.js +0 -31
  183. package/dist/js/node/utils/printInstructions.js +0 -54
  184. package/dist/js/node/utils/restart.js +0 -67
  185. package/dist/js/node/utils/routes.js +0 -59
  186. package/dist/js/node/utils/types.js +0 -15
  187. package/dist/js/treeshaking/analyze/constants.js +0 -42
  188. package/dist/js/treeshaking/analyze/generateCode.js +0 -485
  189. package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
  190. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
  191. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
  192. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
  193. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
  194. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
  195. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
  196. package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -224
  197. package/dist/js/treeshaking/analyze/index.js +0 -702
  198. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
  199. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
  200. package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -409
  201. package/dist/js/treeshaking/analyze/templates.js +0 -465
  202. package/dist/js/treeshaking/analyze/utils.js +0 -374
  203. package/dist/js/treeshaking/builder/builder-rspack/index.js +0 -6
  204. package/dist/js/treeshaking/builder/builder-webpack/builderPlugins/compatModern.js +0 -64
  205. package/dist/js/treeshaking/builder/builder-webpack/index.js +0 -301
  206. package/dist/js/treeshaking/builder/builder-webpack/webpackPlugins/RouterPlugin.js +0 -346
  207. package/dist/js/treeshaking/builder/builder-webpack/webpackPlugins/index.js +0 -1
  208. package/dist/js/treeshaking/builder/generator/createBuilderOptions.js +0 -41
  209. package/dist/js/treeshaking/builder/generator/createBuilderProviderConfig.js +0 -70
  210. package/dist/js/treeshaking/builder/generator/getBuilderTargets.js +0 -16
  211. package/dist/js/treeshaking/builder/generator/index.js +0 -199
  212. package/dist/js/treeshaking/builder/index.js +0 -175
  213. package/dist/js/treeshaking/builder/shared/builderPlugins/adapterModern.js +0 -300
  214. package/dist/js/treeshaking/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +0 -110
  215. package/dist/js/treeshaking/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +0 -72
  216. package/dist/js/treeshaking/builder/shared/createCopyPattern.js +0 -40
  217. package/dist/js/treeshaking/builder/shared/index.js +0 -3
  218. package/dist/js/treeshaking/builder/shared/loaders/serverModuleLoader.js +0 -5
  219. package/dist/js/treeshaking/builder/shared/types.js +0 -1
  220. package/dist/js/treeshaking/commands/build.js +0 -291
  221. package/dist/js/treeshaking/commands/deploy.js +0 -154
  222. package/dist/js/treeshaking/commands/dev.js +0 -301
  223. package/dist/js/treeshaking/commands/index.js +0 -3
  224. package/dist/js/treeshaking/commands/inspect.js +0 -149
  225. package/dist/js/treeshaking/commands/serve.js +0 -199
  226. package/dist/js/treeshaking/config/default.js +0 -210
  227. package/dist/js/treeshaking/config/index.js +0 -3
  228. package/dist/js/treeshaking/config/initialize/index.js +0 -10
  229. package/dist/js/treeshaking/config/initialize/inits.js +0 -211
  230. package/dist/js/treeshaking/config/legacy/createHtmlConfig.js +0 -19
  231. package/dist/js/treeshaking/config/legacy/createOutputConfig.js +0 -41
  232. package/dist/js/treeshaking/config/legacy/createSourceConfig.js +0 -42
  233. package/dist/js/treeshaking/config/legacy/createToolsConfig.js +0 -23
  234. package/dist/js/treeshaking/config/legacy/index.js +0 -38
  235. package/dist/js/treeshaking/defineConfig.js +0 -61
  236. package/dist/js/treeshaking/exports/server.js +0 -2
  237. package/dist/js/treeshaking/hooks.js +0 -29
  238. package/dist/js/treeshaking/index.js +0 -713
  239. package/dist/js/treeshaking/initialize/index.js +0 -284
  240. package/dist/js/treeshaking/locale/en.js +0 -38
  241. package/dist/js/treeshaking/locale/index.js +0 -9
  242. package/dist/js/treeshaking/locale/zh.js +0 -38
  243. package/dist/js/treeshaking/schema/Schema.js +0 -273
  244. package/dist/js/treeshaking/schema/index.js +0 -181
  245. package/dist/js/treeshaking/schema/legacy.js +0 -337
  246. package/dist/js/treeshaking/types/config/deploy.js +0 -1
  247. package/dist/js/treeshaking/types/config/dev.js +0 -1
  248. package/dist/js/treeshaking/types/config/experiments.js +0 -1
  249. package/dist/js/treeshaking/types/config/html.js +0 -1
  250. package/dist/js/treeshaking/types/config/index.js +0 -1
  251. package/dist/js/treeshaking/types/config/output.js +0 -1
  252. package/dist/js/treeshaking/types/config/performance.js +0 -1
  253. package/dist/js/treeshaking/types/config/security.js +0 -1
  254. package/dist/js/treeshaking/types/config/source.js +0 -1
  255. package/dist/js/treeshaking/types/config/tools.js +0 -1
  256. package/dist/js/treeshaking/types/hooks.js +0 -1
  257. package/dist/js/treeshaking/types/index.js +0 -3
  258. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
  259. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
  260. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
  261. package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
  262. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
  263. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
  264. package/dist/js/treeshaking/types/utils.js +0 -1
  265. package/dist/js/treeshaking/utils/config.js +0 -302
  266. package/dist/js/treeshaking/utils/createServer.js +0 -258
  267. package/dist/js/treeshaking/utils/env.js +0 -13
  268. package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
  269. package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
  270. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
  271. package/dist/js/treeshaking/utils/language.js +0 -6
  272. package/dist/js/treeshaking/utils/printInstructions.js +0 -152
  273. package/dist/js/treeshaking/utils/restart.js +0 -187
  274. package/dist/js/treeshaking/utils/routes.js +0 -153
  275. package/dist/js/treeshaking/utils/types.js +0 -1
@@ -1,220 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import path from "path";
21
- import { fs } from "@modern-js/utils";
22
- import { makeLegalIdentifier } from "../makeLegalIdentifier";
23
- import {
24
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
25
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
26
- FILE_SYSTEM_ROUTES_INDEX,
27
- FILE_SYSTEM_ROUTES_LAYOUT
28
- } from "../constants";
29
- import { replaceWithAlias } from "../utils";
30
- import { debug, findLayout, shouldSkip, getRouteWeight } from "./utils";
31
- const compName = (srcDirectory, filePath) => {
32
- const legalCompName = makeLegalIdentifier(
33
- path.relative(srcDirectory, filePath)
34
- );
35
- return `Comp_${legalCompName}`;
36
- };
37
- const layoutNameAbbr = (filePath) => {
38
- const prefix = "L_";
39
- const dirName = path.dirname(filePath).split("/").pop() || "";
40
- return `${prefix}${makeLegalIdentifier(dirName)}`;
41
- };
42
- const parents = [];
43
- const recursiveReadDir = ({
44
- dir,
45
- routes,
46
- basePath = "/",
47
- srcDirectory,
48
- srcAlias
49
- }) => {
50
- let hasDynamicRoute = false;
51
- let resetParent = false;
52
- let parent = parents[parents.length - 1];
53
- const layout = findLayout(dir);
54
- if (layout) {
55
- if (basePath === "/") {
56
- throw new Error(`should use _app instead of _layout in ${dir}`);
57
- } else {
58
- const alias = replaceWithAlias(srcDirectory, layout, srcAlias);
59
- const componentName = compName(srcDirectory, layout);
60
- const route = {
61
- path: `${basePath.substring(0, basePath.length - 1)}`,
62
- children: [],
63
- _component: alias,
64
- component: componentName,
65
- parent,
66
- type: "page"
67
- };
68
- parent = route;
69
- resetParent = true;
70
- routes.push(route);
71
- parents.push(route);
72
- routes = route.children;
73
- }
74
- }
75
- for (const relative of fs.readdirSync(dir)) {
76
- const filePath = path.join(dir, relative);
77
- if (!shouldSkip(filePath)) {
78
- const filename = path.basename(filePath, path.extname(filePath));
79
- const alias = replaceWithAlias(srcDirectory, filePath, srcAlias);
80
- const componentName = compName(srcDirectory, filePath);
81
- const dynamicRouteMatched = FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
82
- if (dynamicRouteMatched) {
83
- if (hasDynamicRoute) {
84
- throw new Error(
85
- `Can't set two dynamic route in one directory: ${dir}`
86
- );
87
- } else {
88
- hasDynamicRoute = true;
89
- }
90
- }
91
- const route = {
92
- path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
93
- _component: alias,
94
- component: componentName,
95
- parent,
96
- type: "page"
97
- };
98
- if (fs.statSync(filePath).isDirectory()) {
99
- recursiveReadDir({
100
- dir: filePath,
101
- routes,
102
- basePath: `${route.path}/`,
103
- srcDirectory,
104
- srcAlias
105
- });
106
- continue;
107
- }
108
- if (filename === FILE_SYSTEM_ROUTES_LAYOUT) {
109
- continue;
110
- }
111
- if (filename === FILE_SYSTEM_ROUTES_INDEX) {
112
- route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
113
- }
114
- if (filename === "404" && basePath === "/") {
115
- route.path = "*";
116
- }
117
- routes.push(route);
118
- }
119
- }
120
- if (resetParent) {
121
- parents.pop();
122
- }
123
- };
124
- const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
125
- const flat = (routes) => routes.reduce(
126
- (memo, route) => memo.concat(
127
- Array.isArray(route.children) ? flat(route.children) : [route]
128
- ),
129
- []
130
- );
131
- const generate = (route) => {
132
- const codes = [];
133
- let lastComponent = route.component;
134
- const imports = [
135
- `import React from 'react';`,
136
- `import ${lastComponent} from '${route._component}'`
137
- ];
138
- while (route = route.parent) {
139
- const layoutComponent = route.component;
140
- const layoutComponentAbbr = layoutNameAbbr(route._component);
141
- imports.push(`import ${layoutComponent} from '${route._component}';`);
142
- const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
143
- codes.push(
144
- `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
145
- );
146
- lastComponent = currentComponent;
147
- }
148
- const file = path.resolve(internalComponentsDir, `${lastComponent}.jsx`);
149
- fs.outputFileSync(
150
- file,
151
- `${imports.join("\n")}
152
- ${codes.join(
153
- "\n"
154
- )}
155
- export default ${lastComponent}`
156
- );
157
- return {
158
- component: lastComponent,
159
- _component: replaceWithAlias(internalDirectory, file, internalDirAlias)
160
- };
161
- };
162
- const normalized = flat(nested).map(
163
- (route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
164
- );
165
- return normalized;
166
- };
167
- const getClientRoutes = ({
168
- entrypoint,
169
- srcDirectory,
170
- srcAlias,
171
- internalDirectory,
172
- internalDirAlias
173
- }) => {
174
- const { entryName, pageRoutesEntry } = entrypoint;
175
- if (!pageRoutesEntry) {
176
- return [];
177
- }
178
- if (!fs.existsSync(pageRoutesEntry)) {
179
- throw new Error(
180
- `generate file system routes error, ${pageRoutesEntry} directory not found.`
181
- );
182
- }
183
- if (!(fs.existsSync(pageRoutesEntry) && fs.statSync(pageRoutesEntry).isDirectory())) {
184
- throw new Error(
185
- `generate file system routes error, ${pageRoutesEntry} should be directory.`
186
- );
187
- }
188
- let routes = [];
189
- recursiveReadDir({
190
- dir: pageRoutesEntry,
191
- routes,
192
- basePath: "/",
193
- srcDirectory,
194
- srcAlias
195
- });
196
- const internalComponentsDir = path.resolve(
197
- internalDirectory,
198
- `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
199
- );
200
- fs.emptyDirSync(internalComponentsDir);
201
- routes = normalizeNestedRoutes(
202
- routes,
203
- internalComponentsDir,
204
- internalDirectory,
205
- internalDirAlias
206
- );
207
- parents.length = 0;
208
- routes.sort((a, b) => {
209
- const delta = getRouteWeight(a.path) - getRouteWeight(b.path);
210
- if (delta === 0) {
211
- return a.path.length - b.path.length;
212
- }
213
- return delta;
214
- });
215
- debug(`fileSystem routes: %o`, routes);
216
- return routes;
217
- };
218
- export {
219
- getClientRoutes
220
- };
@@ -1,216 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import path from "path";
21
- import { fs } from "@modern-js/utils";
22
- import { makeLegalIdentifier } from "../makeLegalIdentifier";
23
- import {
24
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
25
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
26
- FILE_SYSTEM_ROUTES_INDEX,
27
- FILE_SYSTEM_ROUTES_LAYOUT
28
- } from "../constants";
29
- import { replaceWithAlias } from "../utils";
30
- import { debug, findLayout, shouldSkip, getRouteWeight } from "./utils";
31
- const compName = (srcDirectory, filePath) => {
32
- const legalCompName = makeLegalIdentifier(
33
- path.relative(srcDirectory, filePath)
34
- );
35
- return `Comp_${legalCompName}`;
36
- };
37
- const layoutNameAbbr = (filePath) => {
38
- const prefix = "L_";
39
- const dirName = path.dirname(filePath).split("/").pop() || "";
40
- return `${prefix}${makeLegalIdentifier(dirName)}`;
41
- };
42
- const parents = [];
43
- const recursiveReadDirLegacy = ({
44
- dir,
45
- routes,
46
- basePath = "/",
47
- srcDirectory,
48
- srcAlias
49
- }) => {
50
- let hasDynamicRoute = false;
51
- let resetParent = false;
52
- let parent = parents[parents.length - 1];
53
- const layout = findLayout(dir);
54
- if (layout) {
55
- if (basePath === "/") {
56
- throw new Error(`should use _app instead of _layout in ${dir}`);
57
- } else {
58
- const alias = replaceWithAlias(srcDirectory, layout, srcAlias);
59
- const componentName = compName(srcDirectory, layout);
60
- const route = {
61
- path: `${basePath.substring(0, basePath.length - 1)}`,
62
- exact: false,
63
- routes: [],
64
- _component: alias,
65
- component: componentName,
66
- parent
67
- };
68
- parent = route;
69
- resetParent = true;
70
- routes.push(route);
71
- parents.push(route);
72
- routes = route.routes;
73
- }
74
- }
75
- for (const relative of fs.readdirSync(dir)) {
76
- const filePath = path.join(dir, relative);
77
- if (!shouldSkip(filePath)) {
78
- const filename = path.basename(filePath, path.extname(filePath));
79
- const alias = replaceWithAlias(srcDirectory, filePath, srcAlias);
80
- const componentName = compName(srcDirectory, filePath);
81
- const dynamicRouteMatched = FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
82
- if (dynamicRouteMatched) {
83
- if (hasDynamicRoute) {
84
- throw new Error(
85
- `Can't set two dynamic route in one directory: ${dir}`
86
- );
87
- } else {
88
- hasDynamicRoute = true;
89
- }
90
- }
91
- const route = {
92
- path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
93
- _component: alias,
94
- component: componentName,
95
- exact: true,
96
- parent
97
- };
98
- if (fs.statSync(filePath).isDirectory()) {
99
- recursiveReadDirLegacy({
100
- dir: filePath,
101
- routes,
102
- basePath: `${route.path}/`,
103
- srcDirectory,
104
- srcAlias
105
- });
106
- continue;
107
- }
108
- if (filename === FILE_SYSTEM_ROUTES_LAYOUT) {
109
- continue;
110
- }
111
- if (filename === FILE_SYSTEM_ROUTES_INDEX) {
112
- route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
113
- }
114
- if (filename === "404" && basePath === "/") {
115
- route.path = "*";
116
- route.exact = false;
117
- }
118
- routes.push(route);
119
- }
120
- }
121
- if (resetParent) {
122
- parents.pop();
123
- }
124
- };
125
- const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
126
- const flat = (routes) => routes.reduce(
127
- (memo, route) => memo.concat(Array.isArray(route.routes) ? flat(route.routes) : [route]),
128
- []
129
- );
130
- const generate = (route) => {
131
- const codes = [];
132
- let lastComponent = route.component;
133
- const imports = [
134
- `import React from 'react';`,
135
- `import ${lastComponent} from '${route._component}'`
136
- ];
137
- while (route = route.parent) {
138
- const layoutComponent = route.component;
139
- const layoutComponentAbbr = layoutNameAbbr(route._component);
140
- imports.push(`import ${layoutComponent} from '${route._component}';`);
141
- const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
142
- codes.push(
143
- `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
144
- );
145
- lastComponent = currentComponent;
146
- }
147
- const file = path.resolve(internalComponentsDir, `${lastComponent}.jsx`);
148
- fs.outputFileSync(
149
- file,
150
- `${imports.join("\n")}
151
- ${codes.join(
152
- "\n"
153
- )}
154
- export default ${lastComponent}`
155
- );
156
- return {
157
- component: lastComponent,
158
- _component: replaceWithAlias(internalDirectory, file, internalDirAlias)
159
- };
160
- };
161
- const normalized = flat(nested).map(
162
- (route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
163
- );
164
- return normalized;
165
- };
166
- const getClientRoutes = ({
167
- entrypoint,
168
- srcDirectory,
169
- srcAlias,
170
- internalDirectory,
171
- internalDirAlias
172
- }) => {
173
- const { entry, entryName } = entrypoint;
174
- if (!fs.existsSync(entry)) {
175
- throw new Error(
176
- `generate file system routes error, ${entry} directory not found.`
177
- );
178
- }
179
- if (!(fs.existsSync(entry) && fs.statSync(entry).isDirectory())) {
180
- throw new Error(
181
- `generate file system routes error, ${entry} should be directory.`
182
- );
183
- }
184
- let routes = [];
185
- recursiveReadDirLegacy({
186
- dir: entry,
187
- routes,
188
- basePath: "/",
189
- srcDirectory,
190
- srcAlias
191
- });
192
- const internalComponentsDir = path.resolve(
193
- internalDirectory,
194
- `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
195
- );
196
- fs.emptyDirSync(internalComponentsDir);
197
- routes = normalizeNestedRoutes(
198
- routes,
199
- internalComponentsDir,
200
- internalDirectory,
201
- internalDirAlias
202
- );
203
- parents.length = 0;
204
- routes.sort((a, b) => {
205
- const delta = getRouteWeight(a.path) - getRouteWeight(b.path);
206
- if (delta === 0) {
207
- return a.path.length - b.path.length;
208
- }
209
- return delta;
210
- });
211
- debug(`fileSystem routes: %o`, routes);
212
- return routes;
213
- };
214
- export {
215
- getClientRoutes
216
- };
@@ -1,6 +0,0 @@
1
- import { getClientRoutes } from "./getRoutes";
2
- import { getClientRoutes as getClientRoutes2 } from "./getRoutesLegacy";
3
- export {
4
- getClientRoutes,
5
- getClientRoutes2 as getClientRoutesLegacy
6
- };
@@ -1,31 +0,0 @@
1
- import path from "path";
2
- import { createDebugger, findExists, fs } from "@modern-js/utils";
3
- import {
4
- JS_EXTENSIONS,
5
- FILE_SYSTEM_ROUTES_LAYOUT,
6
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
7
- FILE_SYSTEM_ROUTES_IGNORED_REGEX
8
- } from "../constants";
9
- const debug = createDebugger("get-client-routes");
10
- const findLayout = (dir) => findExists(
11
- JS_EXTENSIONS.map(
12
- (ext) => path.resolve(dir, `${FILE_SYSTEM_ROUTES_LAYOUT}${ext}`)
13
- )
14
- );
15
- const getRouteWeight = (route) => route === "*" ? 999 : route.split(":").length - 1;
16
- const shouldSkip = (file) => {
17
- if (fs.statSync(file).isDirectory()) {
18
- return false;
19
- }
20
- const ext = path.extname(file);
21
- if (FILE_SYSTEM_ROUTES_IGNORED_REGEX.test(file) || !JS_EXTENSIONS.includes(ext) || FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT === path.basename(file, ext)) {
22
- return true;
23
- }
24
- return false;
25
- };
26
- export {
27
- debug,
28
- findLayout,
29
- getRouteWeight,
30
- shouldSkip
31
- };
@@ -1,109 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { findExists, ensureAbsolutePath } from "@modern-js/utils";
4
- import { isDefaultExportFunction } from "./isDefaultExportFunction";
5
- import {
6
- JS_EXTENSIONS,
7
- INDEX_FILE_NAME,
8
- APP_FILE_NAME,
9
- PAGES_DIR_NAME,
10
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
11
- NESTED_ROUTES_DIR
12
- } from "./constants";
13
- const hasIndex = (dir) => findExists(
14
- JS_EXTENSIONS.map((ext) => path.resolve(dir, `${INDEX_FILE_NAME}${ext}`))
15
- );
16
- const hasApp = (dir) => findExists(
17
- JS_EXTENSIONS.map((ext) => path.resolve(dir, `${APP_FILE_NAME}${ext}`))
18
- );
19
- const hasPages = (dir) => fs.existsSync(path.join(dir, PAGES_DIR_NAME));
20
- const hasNestedRoutes = (dir) => fs.existsSync(path.join(dir, NESTED_ROUTES_DIR));
21
- const isBundleEntry = (dir) => hasApp(dir) || hasPages(dir) || hasIndex(dir) || hasNestedRoutes(dir);
22
- const scanDir = (dirs) => dirs.map((dir) => {
23
- const indexFile = hasIndex(dir);
24
- const customBootstrap = isDefaultExportFunction(indexFile) ? indexFile : false;
25
- const entryName = path.basename(dir);
26
- if (indexFile && !customBootstrap) {
27
- return {
28
- entryName,
29
- entry: indexFile,
30
- absoluteEntryDir: path.resolve(dir),
31
- isAutoMount: false
32
- };
33
- }
34
- const isHasApp = hasApp(dir);
35
- if (isHasApp) {
36
- return {
37
- entryName,
38
- entry: path.join(dir, APP_FILE_NAME),
39
- isAutoMount: true,
40
- absoluteEntryDir: path.resolve(dir),
41
- customBootstrap
42
- };
43
- }
44
- const isHasNestedRoutes = hasNestedRoutes(dir);
45
- const isHasPages = hasPages(dir);
46
- if (isHasNestedRoutes || isHasPages) {
47
- const entrypoint = {
48
- entryName,
49
- entry: "",
50
- fileSystemRoutes: {
51
- globalApp: findExists(
52
- JS_EXTENSIONS.map(
53
- (ext) => path.resolve(
54
- dir,
55
- `./${PAGES_DIR_NAME}/${FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`
56
- )
57
- )
58
- )
59
- },
60
- isAutoMount: true,
61
- absoluteEntryDir: path.resolve(dir),
62
- customBootstrap
63
- };
64
- if (isHasPages) {
65
- entrypoint.entry = path.join(dir, PAGES_DIR_NAME);
66
- entrypoint.pageRoutesEntry = entrypoint.entry;
67
- }
68
- if (isHasNestedRoutes) {
69
- entrypoint.entry = path.join(dir, NESTED_ROUTES_DIR);
70
- entrypoint.nestedRoutesEntry = entrypoint.entry;
71
- }
72
- return entrypoint;
73
- }
74
- return {
75
- entryName,
76
- entry: indexFile,
77
- absoluteEntryDir: path.resolve(dir),
78
- isAutoMount: false
79
- };
80
- });
81
- const getFileSystemEntry = (appContext, config) => {
82
- const { appDirectory } = appContext;
83
- const {
84
- source: { entriesDir, disableEntryDirs }
85
- } = config;
86
- let disabledDirs = [];
87
- if (disableEntryDirs && Array.isArray(disableEntryDirs)) {
88
- disabledDirs = disableEntryDirs == null ? void 0 : disableEntryDirs.map(
89
- (dir) => ensureAbsolutePath(appDirectory, dir)
90
- );
91
- }
92
- const src = ensureAbsolutePath(appDirectory, entriesDir || "");
93
- if (fs.existsSync(src)) {
94
- if (fs.statSync(src).isDirectory()) {
95
- return scanDir(
96
- isBundleEntry(src) ? [src] : fs.readdirSync(src).map((file) => path.join(src, file)).filter(
97
- (file) => fs.statSync(file).isDirectory() && isBundleEntry(file) && !disabledDirs.includes(file)
98
- )
99
- );
100
- } else {
101
- throw Error(`source.entriesDir accept a directory.`);
102
- }
103
- } else {
104
- throw Error(`src dir ${entriesDir} not found.`);
105
- }
106
- };
107
- export {
108
- getFileSystemEntry
109
- };
@@ -1,115 +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, findExists, MAIN_ENTRY_NAME } from "@modern-js/utils";
23
- import { HTML_PARTIALS_EXTENSIONS, HTML_PARTIALS_FOLDER } from "./constants";
24
- import * as templates from "./templates";
25
- var PartialPosition = /* @__PURE__ */ ((PartialPosition2) => {
26
- PartialPosition2["TOP"] = "top";
27
- PartialPosition2["HEAD"] = "head";
28
- PartialPosition2["BODY"] = "body";
29
- PartialPosition2["BOTTOM"] = "bottom";
30
- PartialPosition2["INDEX"] = "index";
31
- return PartialPosition2;
32
- })(PartialPosition || {});
33
- const findPartials = (dir, entryName, position) => {
34
- if (fs.existsSync(dir)) {
35
- const base = findExists(
36
- HTML_PARTIALS_EXTENSIONS.map(
37
- (ext) => path.resolve(dir, `${position}${ext}`)
38
- )
39
- );
40
- const file = entryName ? findExists(
41
- HTML_PARTIALS_EXTENSIONS.map(
42
- (ext) => path.resolve(dir, entryName, `${position}${ext}`)
43
- )
44
- ) || base : base;
45
- return file ? { file, content: fs.readFileSync(file, "utf8") } : null;
46
- }
47
- return null;
48
- };
49
- const getHtmlTemplate = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (entrypoints, api, {
50
- appContext,
51
- config
52
- }) {
53
- const { appDirectory, internalDirectory } = appContext;
54
- const {
55
- source: { configDir }
56
- } = config;
57
- const htmlDir = path.resolve(
58
- appDirectory,
59
- configDir || "",
60
- HTML_PARTIALS_FOLDER
61
- );
62
- const htmlTemplates = {};
63
- for (const entrypoint of entrypoints) {
64
- const { entryName } = entrypoint;
65
- const name = entrypoints.length === 1 && entryName === MAIN_ENTRY_NAME ? "" : entryName;
66
- const customIndexTemplate = findPartials(
67
- htmlDir,
68
- name,
69
- "index" /* INDEX */
70
- );
71
- if (customIndexTemplate) {
72
- htmlTemplates[entryName] = customIndexTemplate.file;
73
- } else {
74
- const hookRunners = api.useHookRunners();
75
- const { partials } = yield hookRunners.htmlPartials({
76
- entrypoint,
77
- partials: [
78
- "top" /* TOP */,
79
- "head" /* HEAD */,
80
- "body" /* BODY */
81
- ].reduce(
82
- (previous, position) => {
83
- const found = findPartials(htmlDir, name, position);
84
- previous[position] = found ? [found.content] : [];
85
- return previous;
86
- },
87
- {
88
- top: [],
89
- head: [],
90
- body: []
91
- }
92
- )
93
- });
94
- const templatePath = path.resolve(
95
- internalDirectory,
96
- entryName,
97
- "index.html"
98
- );
99
- fs.outputFileSync(templatePath, templates.html(partials), "utf8");
100
- htmlTemplates[entryName] = templatePath;
101
- const bottomTemplate = findPartials(
102
- htmlDir,
103
- name,
104
- "bottom" /* BOTTOM */
105
- );
106
- if (bottomTemplate) {
107
- htmlTemplates[`__${entryName}-bottom__`] = bottomTemplate.content;
108
- }
109
- }
110
- }
111
- return htmlTemplates;
112
- });
113
- export {
114
- getHtmlTemplate
115
- };