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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/CHANGELOG.md +619 -0
  2. package/bin/modern.js +3 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +48 -18
  5. package/dist/js/modern/analyze/generateCode.js +264 -225
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
  8. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  9. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  10. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  11. package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
  12. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  13. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  14. package/dist/js/modern/analyze/index.js +204 -161
  15. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  16. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  17. package/dist/js/modern/analyze/nestedRoutes.js +118 -65
  18. package/dist/js/modern/analyze/templates.js +170 -81
  19. package/dist/js/modern/analyze/utils.js +104 -67
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
  21. package/dist/js/modern/builder/index.js +120 -89
  22. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  24. package/dist/js/modern/builder/share.js +23 -21
  25. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  26. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  27. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
  28. package/dist/js/modern/commands/build.js +67 -42
  29. package/dist/js/modern/commands/deploy.js +27 -4
  30. package/dist/js/modern/commands/dev.js +81 -34
  31. package/dist/js/modern/commands/index.js +1 -1
  32. package/dist/js/modern/commands/inspect.js +30 -5
  33. package/dist/js/modern/commands/serve.js +54 -0
  34. package/dist/js/modern/config/default.js +112 -145
  35. package/dist/js/modern/config/index.js +8 -2
  36. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  37. package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
  38. package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
  39. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  40. package/dist/js/modern/config/initial/index.js +9 -4
  41. package/dist/js/modern/config/initial/inits.js +109 -73
  42. package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
  43. package/dist/js/modern/defineConfig.js +26 -11
  44. package/dist/js/modern/exports/server.js +4 -1
  45. package/dist/js/modern/hooks.js +16 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +100 -52
  48. package/dist/js/modern/locale/en.js +20 -21
  49. package/dist/js/modern/locale/index.js +6 -6
  50. package/dist/js/modern/locale/zh.js +21 -22
  51. package/dist/js/modern/schema/Schema.js +6 -5
  52. package/dist/js/modern/schema/index.js +53 -100
  53. package/dist/js/modern/schema/legacy.js +96 -231
  54. package/dist/js/modern/types/config/index.js +0 -1
  55. package/dist/js/modern/types/index.js +0 -1
  56. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  57. package/dist/js/modern/utils/commands.js +10 -2
  58. package/dist/js/modern/utils/config.js +102 -41
  59. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  60. package/dist/js/modern/utils/createServer.js +63 -17
  61. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  62. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  63. package/dist/js/modern/utils/language.js +6 -3
  64. package/dist/js/modern/utils/printInstructions.js +27 -8
  65. package/dist/js/modern/utils/restart.js +43 -16
  66. package/dist/js/modern/utils/routes.js +29 -12
  67. package/dist/js/node/analyze/Builder.js +64 -0
  68. package/dist/js/node/analyze/constants.js +86 -39
  69. package/dist/js/node/analyze/generateCode.js +285 -239
  70. package/dist/js/node/analyze/getBundleEntry.js +62 -44
  71. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
  72. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
  73. package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
  74. package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
  75. package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
  76. package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
  77. package/dist/js/node/analyze/getServerRoutes.js +145 -137
  78. package/dist/js/node/analyze/index.js +233 -174
  79. package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
  80. package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
  81. package/dist/js/node/analyze/nestedRoutes.js +150 -79
  82. package/dist/js/node/analyze/templates.js +198 -90
  83. package/dist/js/node/analyze/utils.js +136 -81
  84. package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
  85. package/dist/js/node/builder/index.js +142 -98
  86. package/dist/js/node/builder/loaders/routerLoader.js +29 -18
  87. package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
  88. package/dist/js/node/builder/share.js +50 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
  90. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
  91. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
  92. package/dist/js/node/commands/build.js +91 -52
  93. package/dist/js/node/commands/deploy.js +49 -10
  94. package/dist/js/node/commands/dev.js +105 -48
  95. package/dist/js/node/commands/index.js +19 -38
  96. package/dist/js/node/commands/inspect.js +52 -11
  97. package/dist/js/node/commands/serve.js +83 -0
  98. package/dist/js/node/config/default.js +131 -149
  99. package/dist/js/node/config/index.js +31 -28
  100. package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
  101. package/dist/js/node/config/initial/createOutputConfig.js +31 -17
  102. package/dist/js/node/config/initial/createSourceConfig.js +31 -7
  103. package/dist/js/node/config/initial/createToolsConfig.js +28 -10
  104. package/dist/js/node/config/initial/index.js +34 -17
  105. package/dist/js/node/config/initial/inits.js +130 -81
  106. package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
  107. package/dist/js/node/defineConfig.js +46 -17
  108. package/dist/js/node/exports/server.js +25 -10
  109. package/dist/js/node/hooks.js +53 -29
  110. package/dist/js/node/index.js +213 -129
  111. package/dist/js/node/initialize/index.js +117 -61
  112. package/dist/js/node/locale/en.js +40 -25
  113. package/dist/js/node/locale/index.js +31 -14
  114. package/dist/js/node/locale/zh.js +41 -26
  115. package/dist/js/node/schema/Schema.js +27 -10
  116. package/dist/js/node/schema/index.js +84 -114
  117. package/dist/js/node/schema/legacy.js +119 -240
  118. package/dist/js/node/types/config/deploy.js +15 -0
  119. package/dist/js/node/types/config/dev.js +15 -0
  120. package/dist/js/node/types/config/experiments.js +15 -0
  121. package/dist/js/node/types/config/html.js +15 -0
  122. package/dist/js/node/types/config/index.js +17 -16
  123. package/dist/js/node/types/config/output.js +15 -0
  124. package/dist/js/node/types/config/performance.js +15 -0
  125. package/dist/js/node/types/config/security.js +15 -0
  126. package/dist/js/node/types/config/source.js +15 -0
  127. package/dist/js/node/types/config/tools.js +15 -0
  128. package/dist/js/node/types/hooks.js +15 -0
  129. package/dist/js/node/types/index.js +19 -38
  130. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  131. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  132. package/dist/js/node/types/legacyConfig/index.js +15 -0
  133. package/dist/js/node/types/legacyConfig/output.js +15 -5
  134. package/dist/js/node/types/legacyConfig/source.js +15 -0
  135. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  136. package/dist/js/node/utils/commands.js +31 -6
  137. package/dist/js/node/utils/config.js +125 -51
  138. package/dist/js/node/utils/createFileWatcher.js +109 -61
  139. package/dist/js/node/utils/createServer.js +92 -25
  140. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  141. package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
  142. package/dist/js/node/utils/language.js +28 -8
  143. package/dist/js/node/utils/printInstructions.js +51 -16
  144. package/dist/js/node/utils/restart.js +65 -21
  145. package/dist/js/node/utils/routes.js +58 -19
  146. package/dist/js/node/utils/types.js +15 -0
  147. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  148. package/dist/js/treeshaking/analyze/constants.js +37 -18
  149. package/dist/js/treeshaking/analyze/generateCode.js +597 -407
  150. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  151. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
  152. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  153. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  154. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  155. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
  156. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  157. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  158. package/dist/js/treeshaking/analyze/index.js +575 -305
  159. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  160. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  161. package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
  162. package/dist/js/treeshaking/analyze/templates.js +438 -236
  163. package/dist/js/treeshaking/analyze/utils.js +367 -153
  164. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
  165. package/dist/js/treeshaking/builder/index.js +365 -165
  166. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  167. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  168. package/dist/js/treeshaking/builder/share.js +38 -44
  169. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  170. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  171. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  172. package/dist/js/treeshaking/commands/build.js +286 -88
  173. package/dist/js/treeshaking/commands/deploy.js +153 -25
  174. package/dist/js/treeshaking/commands/dev.js +313 -131
  175. package/dist/js/treeshaking/commands/index.js +1 -1
  176. package/dist/js/treeshaking/commands/inspect.js +147 -32
  177. package/dist/js/treeshaking/commands/serve.js +199 -0
  178. package/dist/js/treeshaking/config/default.js +207 -198
  179. package/dist/js/treeshaking/config/index.js +3 -2
  180. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  181. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
  182. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
  183. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  184. package/dist/js/treeshaking/config/initial/index.js +10 -9
  185. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  186. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
  187. package/dist/js/treeshaking/defineConfig.js +60 -13
  188. package/dist/js/treeshaking/exports/server.js +2 -1
  189. package/dist/js/treeshaking/hooks.js +31 -25
  190. package/dist/js/treeshaking/index.js +681 -256
  191. package/dist/js/treeshaking/initialize/index.js +292 -113
  192. package/dist/js/treeshaking/locale/en.js +34 -33
  193. package/dist/js/treeshaking/locale/index.js +5 -5
  194. package/dist/js/treeshaking/locale/zh.js +34 -33
  195. package/dist/js/treeshaking/schema/Schema.js +267 -69
  196. package/dist/js/treeshaking/schema/index.js +171 -121
  197. package/dist/js/treeshaking/schema/legacy.js +323 -256
  198. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  199. package/dist/js/treeshaking/types/config/dev.js +1 -0
  200. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  201. package/dist/js/treeshaking/types/config/html.js +1 -0
  202. package/dist/js/treeshaking/types/config/index.js +0 -1
  203. package/dist/js/treeshaking/types/config/output.js +1 -0
  204. package/dist/js/treeshaking/types/config/performance.js +1 -0
  205. package/dist/js/treeshaking/types/config/security.js +1 -0
  206. package/dist/js/treeshaking/types/config/source.js +1 -0
  207. package/dist/js/treeshaking/types/config/tools.js +1 -0
  208. package/dist/js/treeshaking/types/hooks.js +1 -0
  209. package/dist/js/treeshaking/types/index.js +0 -1
  210. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  211. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  212. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  213. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  214. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  215. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  216. package/dist/js/treeshaking/utils/commands.js +10 -5
  217. package/dist/js/treeshaking/utils/config.js +295 -117
  218. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  219. package/dist/js/treeshaking/utils/createServer.js +252 -67
  220. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  221. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  222. package/dist/js/treeshaking/utils/language.js +6 -5
  223. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  224. package/dist/js/treeshaking/utils/restart.js +184 -42
  225. package/dist/js/treeshaking/utils/routes.js +151 -27
  226. package/dist/js/treeshaking/utils/types.js +1 -0
  227. package/dist/types/analyze/Builder.d.ts +8 -0
  228. package/dist/types/analyze/constants.d.ts +10 -1
  229. package/dist/types/analyze/index.d.ts +2 -0
  230. package/dist/types/analyze/templates.d.ts +3 -1
  231. package/dist/types/analyze/utils.d.ts +2 -1
  232. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  233. package/dist/types/builder/index.d.ts +3 -3
  234. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  235. package/dist/types/commands/index.d.ts +1 -1
  236. package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
  237. package/dist/types/defineConfig.d.ts +1 -0
  238. package/dist/types/index.d.ts +7 -1
  239. package/dist/types/initialize/index.d.ts +2 -0
  240. package/dist/types/locale/en.d.ts +1 -1
  241. package/dist/types/locale/index.d.ts +2 -2
  242. package/dist/types/locale/zh.d.ts +1 -1
  243. package/dist/types/types/config/dev.d.ts +2 -2
  244. package/dist/types/types/config/index.d.ts +4 -0
  245. package/dist/types/types/config/output.d.ts +0 -1
  246. package/dist/types/types/config/source.d.ts +2 -0
  247. package/dist/types/types/config/tools.d.ts +2 -0
  248. package/dist/types/types/hooks.d.ts +8 -0
  249. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  250. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  251. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  252. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  253. package/dist/types/utils/commands.d.ts +2 -1
  254. package/dist/types/utils/config.d.ts +1 -0
  255. package/dist/types/utils/createServer.d.ts +1 -0
  256. package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
  257. package/dist/types/utils/restart.d.ts +1 -1
  258. package/package.json +26 -22
  259. package/dist/js/modern/commands/start.js +0 -30
  260. package/dist/js/node/commands/start.js +0 -38
  261. package/dist/js/treeshaking/commands/start.js +0 -69
@@ -1,76 +1,94 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var getBundleEntry_exports = {};
25
+ __export(getBundleEntry_exports, {
26
+ getBundleEntry: () => getBundleEntry
5
27
  });
6
- exports.getBundleEntry = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _getFileSystemEntry = require("./getFileSystemEntry");
10
- var _constants = require("./constants");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- const ensureExtensions = file => {
13
- if (!_path.default.extname(file)) {
14
- return (0, _utils.findExists)(_constants.JS_EXTENSIONS.map(ext => `${file}${ext}`)) || file;
28
+ module.exports = __toCommonJS(getBundleEntry_exports);
29
+ var import_path = __toESM(require("path"));
30
+ var import_utils = require("@modern-js/utils");
31
+ var import_getFileSystemEntry = require("./getFileSystemEntry");
32
+ var import_constants = require("./constants");
33
+ const ensureExtensions = (file) => {
34
+ if (!import_path.default.extname(file)) {
35
+ return (0, import_utils.findExists)(import_constants.JS_EXTENSIONS.map((ext) => `${file}${ext}`)) || file;
15
36
  }
16
37
  return file;
17
38
  };
18
- const ifAlreadyExists = (entrypoints, checked) => entrypoints.some(entrypoint => {
39
+ const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint) => {
19
40
  if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
20
- // reset entryName
21
41
  checked.entryName = entrypoint.entryName;
22
42
  return true;
23
43
  }
24
- // filesystem routes entrypoint conflict with normal entrypoint.
25
44
  if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
26
- throw new Error(`Entry configuration conflicts\n Your configuration: ${checked.entry}.\n Default entrypoint: ${entrypoint.entry}\n Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`);
45
+ throw new Error(
46
+ `Entry configuration conflicts
47
+ Your configuration: ${checked.entry}.
48
+ Default entrypoint: ${entrypoint.entry}
49
+ Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`
50
+ );
27
51
  }
28
52
  return false;
29
53
  });
30
54
  const getBundleEntry = (appContext, config) => {
55
+ const { appDirectory, packageName } = appContext;
31
56
  const {
32
- appDirectory,
33
- packageName
34
- } = appContext;
35
- const {
36
- source: {
37
- disableDefaultEntries,
38
- entries,
39
- entriesDir
40
- }
57
+ source: { disableDefaultEntries, entries, entriesDir }
41
58
  } = config;
42
- const defaults = disableDefaultEntries ? [] : (0, _getFileSystemEntry.getFileSystemEntry)(appContext, config);
43
-
44
- // merge entrypoints from user config with directory convention.
59
+ const defaults = disableDefaultEntries ? [] : (0, import_getFileSystemEntry.getFileSystemEntry)(appContext, config);
45
60
  if (entries) {
46
- Object.keys(entries).forEach(name => {
61
+ Object.keys(entries).forEach((name) => {
47
62
  const value = entries[name];
48
- const entrypoint = typeof value === 'string' ? {
63
+ const entrypoint = typeof value === "string" ? {
49
64
  entryName: name,
50
- entry: (0, _utils.ensureAbsolutePath)(appDirectory, value),
65
+ entry: (0, import_utils.ensureAbsolutePath)(appDirectory, value),
51
66
  isAutoMount: true,
52
- fileSystemRoutes: _utils.fs.statSync((0, _utils.ensureAbsolutePath)(appDirectory, value)).isDirectory() ? {} : undefined
67
+ fileSystemRoutes: import_utils.fs.statSync((0, import_utils.ensureAbsolutePath)(appDirectory, value)).isDirectory() ? {} : void 0
53
68
  } : {
54
69
  entryName: name,
55
- entry: (0, _utils.ensureAbsolutePath)(appDirectory, value.entry),
70
+ entry: (0, import_utils.ensureAbsolutePath)(appDirectory, value.entry),
56
71
  isAutoMount: !value.disableMount,
57
- fileSystemRoutes: value.enableFileSystemRoutes ? {} : undefined
72
+ fileSystemRoutes: value.enableFileSystemRoutes ? {} : void 0
58
73
  };
74
+ if (entrypoint.fileSystemRoutes) {
75
+ entrypoint.nestedRoutesEntry = entrypoint.entry;
76
+ }
59
77
  if (!ifAlreadyExists(defaults, entrypoint)) {
60
78
  defaults.push(entrypoint);
61
79
  }
62
80
  });
63
81
  }
64
82
  if (!disableDefaultEntries) {
65
- // find main entry point which server route is '/'.
66
- const entriesDirAbs = (0, _utils.ensureAbsolutePath)(appDirectory, entriesDir || '');
67
- const found = defaults.find(({
68
- entryName,
69
- entry,
70
- nestedRoutesEntry: _nestedRoutesEntry = ''
71
- }) => entryName === packageName || _path.default.dirname(entry) === entriesDirAbs || _path.default.dirname(_nestedRoutesEntry) === entriesDirAbs);
72
- found && (found.entryName = _utils.MAIN_ENTRY_NAME);
83
+ const entriesDirAbs = (0, import_utils.ensureAbsolutePath)(appDirectory, entriesDir || "");
84
+ const found = defaults.find(
85
+ ({ entryName, entry, nestedRoutesEntry = "" }) => entryName === packageName || import_path.default.dirname(entry) === entriesDirAbs || import_path.default.dirname(nestedRoutesEntry) === entriesDirAbs
86
+ );
87
+ found && (found.entryName = import_utils.MAIN_ENTRY_NAME);
73
88
  }
74
89
  return defaults;
75
90
  };
76
- exports.getBundleEntry = getBundleEntry;
91
+ // Annotate the CommonJS export names for ESM import in node:
92
+ 0 && (module.exports = {
93
+ getBundleEntry
94
+ });
@@ -1,55 +1,90 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var getRoutes_exports = {};
42
+ __export(getRoutes_exports, {
43
+ getClientRoutes: () => getClientRoutes
5
44
  });
6
- exports.getClientRoutes = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _makeLegalIdentifier = require("../makeLegalIdentifier");
10
- var _constants = require("../constants");
11
- var _utils2 = require("../utils");
12
- var _utils3 = require("./utils");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
+ module.exports = __toCommonJS(getRoutes_exports);
46
+ var import_path = __toESM(require("path"));
47
+ var import_utils = require("@modern-js/utils");
48
+ var import_makeLegalIdentifier = require("../makeLegalIdentifier");
49
+ var import_constants = require("../constants");
50
+ var import_utils2 = require("../utils");
51
+ var import_utils3 = require("./utils");
17
52
  const compName = (srcDirectory, filePath) => {
18
- const legalCompName = (0, _makeLegalIdentifier.makeLegalIdentifier)(_path.default.relative(srcDirectory, filePath));
53
+ const legalCompName = (0, import_makeLegalIdentifier.makeLegalIdentifier)(
54
+ import_path.default.relative(srcDirectory, filePath)
55
+ );
19
56
  return `Comp_${legalCompName}`;
20
57
  };
21
- const layoutNameAbbr = filePath => {
22
- const prefix = 'L_';
23
- const dirName = _path.default.dirname(filePath).split('/').pop() || '';
24
- return `${prefix}${(0, _makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
58
+ const layoutNameAbbr = (filePath) => {
59
+ const prefix = "L_";
60
+ const dirName = import_path.default.dirname(filePath).split("/").pop() || "";
61
+ return `${prefix}${(0, import_makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
25
62
  };
26
63
  const parents = [];
27
-
28
- /* eslint-disable no-param-reassign */
29
64
  const recursiveReadDir = ({
30
65
  dir,
31
66
  routes,
32
- basePath: _basePath = '/',
67
+ basePath = "/",
33
68
  srcDirectory,
34
69
  srcAlias
35
70
  }) => {
36
71
  let hasDynamicRoute = false;
37
72
  let resetParent = false;
38
73
  let parent = parents[parents.length - 1];
39
- const layout = (0, _utils3.findLayout)(dir);
74
+ const layout = (0, import_utils3.findLayout)(dir);
40
75
  if (layout) {
41
- if (_basePath === '/') {
76
+ if (basePath === "/") {
42
77
  throw new Error(`should use _app instead of _layout in ${dir}`);
43
78
  } else {
44
- const alias = (0, _utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
79
+ const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
45
80
  const componentName = compName(srcDirectory, layout);
46
81
  const route = {
47
- path: `${_basePath.substring(0, _basePath.length - 1)}`,
82
+ path: `${basePath.substring(0, basePath.length - 1)}`,
48
83
  children: [],
49
84
  _component: alias,
50
85
  component: componentName,
51
86
  parent,
52
- type: 'page'
87
+ type: "page"
53
88
  };
54
89
  parent = route;
55
90
  resetParent = true;
@@ -58,28 +93,30 @@ const recursiveReadDir = ({
58
93
  routes = route.children;
59
94
  }
60
95
  }
61
- for (const relative of _utils.fs.readdirSync(dir)) {
62
- const filePath = _path.default.join(dir, relative);
63
- if (!(0, _utils3.shouldSkip)(filePath)) {
64
- const filename = _path.default.basename(filePath, _path.default.extname(filePath));
65
- const alias = (0, _utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
96
+ for (const relative of import_utils.fs.readdirSync(dir)) {
97
+ const filePath = import_path.default.join(dir, relative);
98
+ if (!(0, import_utils3.shouldSkip)(filePath)) {
99
+ const filename = import_path.default.basename(filePath, import_path.default.extname(filePath));
100
+ const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
66
101
  const componentName = compName(srcDirectory, filePath);
67
- const dynamicRouteMatched = _constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
102
+ const dynamicRouteMatched = import_constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
68
103
  if (dynamicRouteMatched) {
69
104
  if (hasDynamicRoute) {
70
- throw new Error(`Can't set two dynamic route in one directory: ${dir}`);
105
+ throw new Error(
106
+ `Can't set two dynamic route in one directory: ${dir}`
107
+ );
71
108
  } else {
72
109
  hasDynamicRoute = true;
73
110
  }
74
111
  }
75
112
  const route = {
76
- path: `${_basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
113
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
77
114
  _component: alias,
78
115
  component: componentName,
79
116
  parent,
80
- type: 'page'
117
+ type: "page"
81
118
  };
82
- if (_utils.fs.statSync(filePath).isDirectory()) {
119
+ if (import_utils.fs.statSync(filePath).isDirectory()) {
83
120
  recursiveReadDir({
84
121
  dir: filePath,
85
122
  routes,
@@ -89,14 +126,14 @@ const recursiveReadDir = ({
89
126
  });
90
127
  continue;
91
128
  }
92
- if (filename === _constants.FILE_SYSTEM_ROUTES_LAYOUT) {
129
+ if (filename === import_constants.FILE_SYSTEM_ROUTES_LAYOUT) {
93
130
  continue;
94
131
  }
95
- if (filename === _constants.FILE_SYSTEM_ROUTES_INDEX) {
96
- route.path = _basePath === '/' ? _basePath : `${_basePath.substring(0, _basePath.length - 1)}`;
132
+ if (filename === import_constants.FILE_SYSTEM_ROUTES_INDEX) {
133
+ route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
97
134
  }
98
- if (filename === '404' && _basePath === '/') {
99
- route.path = '*';
135
+ if (filename === "404" && basePath === "/") {
136
+ route.path = "*";
100
137
  }
101
138
  routes.push(route);
102
139
  }
@@ -105,36 +142,47 @@ const recursiveReadDir = ({
105
142
  parents.pop();
106
143
  }
107
144
  };
108
- /* eslint-enable no-param-reassign */
109
-
110
145
  const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
111
- const flat = routes => routes.reduce((memo, route) => memo.concat(Array.isArray(route.children) ? flat(route.children) : [route]), []);
112
- const generate = route => {
146
+ const flat = (routes) => routes.reduce(
147
+ (memo, route) => memo.concat(
148
+ Array.isArray(route.children) ? flat(route.children) : [route]
149
+ ),
150
+ []
151
+ );
152
+ const generate = (route) => {
113
153
  const codes = [];
114
154
  let lastComponent = route.component;
115
- const imports = [`import React from 'react';`, `import ${lastComponent} from '${route._component}'`];
116
-
117
- // eslint-disable-next-line no-param-reassign, no-cond-assign
155
+ const imports = [
156
+ `import React from 'react';`,
157
+ `import ${lastComponent} from '${route._component}'`
158
+ ];
118
159
  while (route = route.parent) {
119
160
  const layoutComponent = route.component;
120
161
  const layoutComponentAbbr = layoutNameAbbr(route._component);
121
162
  imports.push(`import ${layoutComponent} from '${route._component}';`);
122
163
  const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
123
- codes.push(`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`);
164
+ codes.push(
165
+ `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
166
+ );
124
167
  lastComponent = currentComponent;
125
168
  }
126
- const file = _path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
127
- _utils.fs.outputFileSync(file, `${imports.join('\n')}\n${codes.join('\n')}\nexport default ${lastComponent}`);
169
+ const file = import_path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
170
+ import_utils.fs.outputFileSync(
171
+ file,
172
+ `${imports.join("\n")}
173
+ ${codes.join(
174
+ "\n"
175
+ )}
176
+ export default ${lastComponent}`
177
+ );
128
178
  return {
129
179
  component: lastComponent,
130
- _component: (0, _utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
180
+ _component: (0, import_utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
131
181
  };
132
182
  };
133
- const normalized = flat(nested).map(route => route.parent ? _objectSpread(_objectSpread(_objectSpread({}, route), generate(route)), {}, {
134
- parent: undefined
135
- }) : _objectSpread(_objectSpread({}, route), {}, {
136
- parent: undefined
137
- }));
183
+ const normalized = flat(nested).map(
184
+ (route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
185
+ );
138
186
  return normalized;
139
187
  };
140
188
  const getClientRoutes = ({
@@ -144,38 +192,51 @@ const getClientRoutes = ({
144
192
  internalDirectory,
145
193
  internalDirAlias
146
194
  }) => {
147
- const {
148
- entry,
149
- entryName
150
- } = entrypoint;
151
- if (!_utils.fs.existsSync(entry)) {
152
- throw new Error(`generate file system routes error, ${entry} directory not found.`);
195
+ const { entryName, pageRoutesEntry } = entrypoint;
196
+ if (!pageRoutesEntry) {
197
+ return [];
198
+ }
199
+ if (!import_utils.fs.existsSync(pageRoutesEntry)) {
200
+ throw new Error(
201
+ `generate file system routes error, ${pageRoutesEntry} directory not found.`
202
+ );
153
203
  }
154
- if (!(_utils.fs.existsSync(entry) && _utils.fs.statSync(entry).isDirectory())) {
155
- throw new Error(`generate file system routes error, ${entry} should be directory.`);
204
+ if (!(import_utils.fs.existsSync(pageRoutesEntry) && import_utils.fs.statSync(pageRoutesEntry).isDirectory())) {
205
+ throw new Error(
206
+ `generate file system routes error, ${pageRoutesEntry} should be directory.`
207
+ );
156
208
  }
157
209
  let routes = [];
158
210
  recursiveReadDir({
159
- dir: entry,
211
+ dir: pageRoutesEntry,
160
212
  routes,
161
- basePath: '/',
213
+ basePath: "/",
162
214
  srcDirectory,
163
215
  srcAlias
164
216
  });
165
- const internalComponentsDir = _path.default.resolve(internalDirectory, `${entryName}/${_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`);
166
- _utils.fs.emptyDirSync(internalComponentsDir);
167
- routes = normalizeNestedRoutes(routes, internalComponentsDir, internalDirectory, internalDirAlias);
217
+ const internalComponentsDir = import_path.default.resolve(
218
+ internalDirectory,
219
+ `${entryName}/${import_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
220
+ );
221
+ import_utils.fs.emptyDirSync(internalComponentsDir);
222
+ routes = normalizeNestedRoutes(
223
+ routes,
224
+ internalComponentsDir,
225
+ internalDirectory,
226
+ internalDirAlias
227
+ );
168
228
  parents.length = 0;
169
-
170
- // FIXME: support more situations
171
229
  routes.sort((a, b) => {
172
- const delta = (0, _utils3.getRouteWeight)(a.path) - (0, _utils3.getRouteWeight)(b.path);
230
+ const delta = (0, import_utils3.getRouteWeight)(a.path) - (0, import_utils3.getRouteWeight)(b.path);
173
231
  if (delta === 0) {
174
232
  return a.path.length - b.path.length;
175
233
  }
176
234
  return delta;
177
235
  });
178
- (0, _utils3.debug)(`fileSystem routes: %o`, routes);
236
+ (0, import_utils3.debug)(`fileSystem routes: %o`, routes);
179
237
  return routes;
180
238
  };
181
- exports.getClientRoutes = getClientRoutes;
239
+ // Annotate the CommonJS export names for ESM import in node:
240
+ 0 && (module.exports = {
241
+ getClientRoutes
242
+ });