@modern-js/app-tools 2.0.0-beta.2 → 2.0.0-beta.4

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 (236) hide show
  1. package/CHANGELOG.md +556 -0
  2. package/bin/modern.js +11 -1
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +38 -16
  5. package/dist/js/modern/analyze/generateCode.js +272 -211
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  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 +43 -22
  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 +201 -160
  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 +110 -53
  18. package/dist/js/modern/analyze/templates.js +191 -77
  19. package/dist/js/modern/analyze/utils.js +98 -51
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +125 -107
  21. package/dist/js/modern/builder/index.js +124 -89
  22. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  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 +93 -47
  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/start.js +37 -16
  34. package/dist/js/modern/config/default.js +103 -114
  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 +11 -9
  38. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  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 +6 -3
  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 +15 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +98 -51
  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 +51 -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 +5 -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/getSpecifiedEntries.js +46 -19
  62. package/dist/js/modern/utils/language.js +6 -3
  63. package/dist/js/modern/utils/printInstructions.js +27 -8
  64. package/dist/js/modern/utils/restart.js +43 -16
  65. package/dist/js/modern/utils/routes.js +29 -12
  66. package/dist/js/node/analyze/Builder.js +58 -0
  67. package/dist/js/node/analyze/constants.js +54 -35
  68. package/dist/js/node/analyze/generateCode.js +291 -228
  69. package/dist/js/node/analyze/getBundleEntry.js +58 -44
  70. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  71. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  72. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  73. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  74. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  75. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  76. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  77. package/dist/js/node/analyze/index.js +247 -174
  78. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  79. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  80. package/dist/js/node/analyze/nestedRoutes.js +140 -67
  81. package/dist/js/node/analyze/templates.js +212 -84
  82. package/dist/js/node/analyze/utils.js +123 -62
  83. package/dist/js/node/builder/builderPlugins/compatModern.js +153 -120
  84. package/dist/js/node/builder/index.js +152 -98
  85. package/dist/js/node/builder/loaders/routerLoader.js +36 -0
  86. package/dist/js/node/builder/loaders/serverModuleLoader.js +26 -0
  87. package/dist/js/node/builder/share.js +46 -26
  88. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  90. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +118 -90
  91. package/dist/js/node/commands/build.js +89 -52
  92. package/dist/js/node/commands/deploy.js +45 -10
  93. package/dist/js/node/commands/dev.js +115 -61
  94. package/dist/js/node/commands/index.js +19 -38
  95. package/dist/js/node/commands/inspect.js +48 -11
  96. package/dist/js/node/commands/start.js +65 -27
  97. package/dist/js/node/config/default.js +119 -118
  98. package/dist/js/node/config/index.js +25 -29
  99. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  100. package/dist/js/node/config/initial/createOutputConfig.js +28 -13
  101. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  102. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  103. package/dist/js/node/config/initial/index.js +28 -17
  104. package/dist/js/node/config/initial/inits.js +126 -81
  105. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  106. package/dist/js/node/defineConfig.js +43 -17
  107. package/dist/js/node/exports/server.js +21 -10
  108. package/dist/js/node/hooks.js +48 -29
  109. package/dist/js/node/index.js +225 -128
  110. package/dist/js/node/initialize/index.js +116 -61
  111. package/dist/js/node/locale/en.js +36 -25
  112. package/dist/js/node/locale/index.js +27 -15
  113. package/dist/js/node/locale/zh.js +37 -26
  114. package/dist/js/node/schema/Schema.js +23 -10
  115. package/dist/js/node/schema/index.js +77 -114
  116. package/dist/js/node/schema/legacy.js +117 -240
  117. package/dist/js/node/types/config/index.js +17 -16
  118. package/dist/js/node/types/index.js +19 -38
  119. package/dist/js/node/types/legacyConfig/output.js +0 -5
  120. package/dist/js/node/utils/commands.js +21 -6
  121. package/dist/js/node/utils/config.js +120 -51
  122. package/dist/js/node/utils/createFileWatcher.js +104 -60
  123. package/dist/js/node/utils/createServer.js +86 -25
  124. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  125. package/dist/js/node/utils/language.js +24 -8
  126. package/dist/js/node/utils/printInstructions.js +47 -16
  127. package/dist/js/node/utils/restart.js +61 -21
  128. package/dist/js/node/utils/routes.js +53 -18
  129. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  130. package/dist/js/treeshaking/analyze/constants.js +28 -16
  131. package/dist/js/treeshaking/analyze/generateCode.js +605 -355
  132. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  133. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  134. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  135. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  136. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  137. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  138. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  139. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -146
  140. package/dist/js/treeshaking/analyze/index.js +571 -304
  141. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  142. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  143. package/dist/js/treeshaking/analyze/nestedRoutes.js +414 -160
  144. package/dist/js/treeshaking/analyze/templates.js +432 -161
  145. package/dist/js/treeshaking/analyze/utils.js +361 -80
  146. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +282 -195
  147. package/dist/js/treeshaking/builder/index.js +371 -167
  148. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  149. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  150. package/dist/js/treeshaking/builder/share.js +38 -44
  151. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  152. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  153. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  154. package/dist/js/treeshaking/commands/build.js +286 -88
  155. package/dist/js/treeshaking/commands/deploy.js +153 -25
  156. package/dist/js/treeshaking/commands/dev.js +318 -132
  157. package/dist/js/treeshaking/commands/index.js +1 -1
  158. package/dist/js/treeshaking/commands/inspect.js +147 -32
  159. package/dist/js/treeshaking/commands/start.js +190 -68
  160. package/dist/js/treeshaking/config/default.js +210 -199
  161. package/dist/js/treeshaking/config/index.js +3 -2
  162. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  163. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -67
  164. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  165. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  166. package/dist/js/treeshaking/config/initial/index.js +10 -9
  167. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  168. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  169. package/dist/js/treeshaking/defineConfig.js +60 -13
  170. package/dist/js/treeshaking/exports/server.js +2 -1
  171. package/dist/js/treeshaking/hooks.js +30 -25
  172. package/dist/js/treeshaking/index.js +681 -256
  173. package/dist/js/treeshaking/initialize/index.js +290 -112
  174. package/dist/js/treeshaking/locale/en.js +34 -33
  175. package/dist/js/treeshaking/locale/index.js +5 -5
  176. package/dist/js/treeshaking/locale/zh.js +34 -33
  177. package/dist/js/treeshaking/schema/Schema.js +267 -69
  178. package/dist/js/treeshaking/schema/index.js +165 -121
  179. package/dist/js/treeshaking/schema/legacy.js +323 -256
  180. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  181. package/dist/js/treeshaking/types/config/dev.js +1 -0
  182. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  183. package/dist/js/treeshaking/types/config/html.js +1 -0
  184. package/dist/js/treeshaking/types/config/index.js +0 -1
  185. package/dist/js/treeshaking/types/config/output.js +1 -0
  186. package/dist/js/treeshaking/types/config/performance.js +1 -0
  187. package/dist/js/treeshaking/types/config/security.js +1 -0
  188. package/dist/js/treeshaking/types/config/source.js +1 -0
  189. package/dist/js/treeshaking/types/config/tools.js +1 -0
  190. package/dist/js/treeshaking/types/hooks.js +1 -0
  191. package/dist/js/treeshaking/types/index.js +0 -1
  192. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  193. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  194. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  195. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  196. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  197. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  198. package/dist/js/treeshaking/utils/commands.js +6 -5
  199. package/dist/js/treeshaking/utils/config.js +295 -117
  200. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  201. package/dist/js/treeshaking/utils/createServer.js +252 -67
  202. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  203. package/dist/js/treeshaking/utils/language.js +6 -5
  204. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  205. package/dist/js/treeshaking/utils/restart.js +184 -42
  206. package/dist/js/treeshaking/utils/routes.js +151 -27
  207. package/dist/js/treeshaking/utils/types.js +1 -0
  208. package/dist/types/analyze/Builder.d.ts +8 -0
  209. package/dist/types/analyze/constants.d.ts +2 -0
  210. package/dist/types/analyze/index.d.ts +2 -0
  211. package/dist/types/analyze/templates.d.ts +10 -7
  212. package/dist/types/analyze/utils.d.ts +9 -1
  213. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  214. package/dist/types/builder/index.d.ts +3 -3
  215. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  216. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  217. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  218. package/dist/types/defineConfig.d.ts +1 -0
  219. package/dist/types/index.d.ts +6 -1
  220. package/dist/types/initialize/index.d.ts +2 -0
  221. package/dist/types/types/config/dev.d.ts +2 -2
  222. package/dist/types/types/config/index.d.ts +1 -0
  223. package/dist/types/types/config/output.d.ts +0 -1
  224. package/dist/types/types/config/source.d.ts +1 -0
  225. package/dist/types/types/config/tools.d.ts +10 -1
  226. package/dist/types/types/hooks.d.ts +7 -1
  227. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  228. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  229. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  230. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  231. package/dist/types/utils/config.d.ts +1 -0
  232. package/dist/types/utils/createFileWatcher.d.ts +2 -1
  233. package/dist/types/utils/createServer.d.ts +1 -0
  234. package/dist/types/utils/restart.d.ts +1 -1
  235. package/lib/types.d.ts +1 -1
  236. package/package.json +26 -22
@@ -1,76 +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 __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 stdin_exports = {};
25
+ __export(stdin_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(stdin_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;
@@ -1,55 +1,92 @@
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 stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ getClientRoutes: () => getClientRoutes
5
27
  });
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; }
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var import_path = __toESM(require("path"));
30
+ var import_utils = require("@modern-js/utils");
31
+ var import_makeLegalIdentifier = require("../makeLegalIdentifier");
32
+ var import_constants = require("../constants");
33
+ var import_utils2 = require("../utils");
34
+ var import_utils3 = require("./utils");
35
+ var __defProp2 = Object.defineProperty;
36
+ var __defProps = Object.defineProperties;
37
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
38
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
39
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
40
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
41
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
42
+ var __spreadValues = (a, b) => {
43
+ for (var prop in b || (b = {}))
44
+ if (__hasOwnProp2.call(b, prop))
45
+ __defNormalProp(a, prop, b[prop]);
46
+ if (__getOwnPropSymbols)
47
+ for (var prop of __getOwnPropSymbols(b)) {
48
+ if (__propIsEnum.call(b, prop))
49
+ __defNormalProp(a, prop, b[prop]);
50
+ }
51
+ return a;
52
+ };
53
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
17
54
  const compName = (srcDirectory, filePath) => {
18
- const legalCompName = (0, _makeLegalIdentifier.makeLegalIdentifier)(_path.default.relative(srcDirectory, filePath));
55
+ const legalCompName = (0, import_makeLegalIdentifier.makeLegalIdentifier)(
56
+ import_path.default.relative(srcDirectory, filePath)
57
+ );
19
58
  return `Comp_${legalCompName}`;
20
59
  };
21
- const layoutNameAbbr = filePath => {
22
- const prefix = 'L_';
23
- const dirName = _path.default.dirname(filePath).split('/').pop() || '';
24
- return `${prefix}${(0, _makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
60
+ const layoutNameAbbr = (filePath) => {
61
+ const prefix = "L_";
62
+ const dirName = import_path.default.dirname(filePath).split("/").pop() || "";
63
+ return `${prefix}${(0, import_makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
25
64
  };
26
65
  const parents = [];
27
-
28
- /* eslint-disable no-param-reassign */
29
66
  const recursiveReadDir = ({
30
67
  dir,
31
68
  routes,
32
- basePath: _basePath = '/',
69
+ basePath = "/",
33
70
  srcDirectory,
34
71
  srcAlias
35
72
  }) => {
36
73
  let hasDynamicRoute = false;
37
74
  let resetParent = false;
38
75
  let parent = parents[parents.length - 1];
39
- const layout = (0, _utils3.findLayout)(dir);
76
+ const layout = (0, import_utils3.findLayout)(dir);
40
77
  if (layout) {
41
- if (_basePath === '/') {
78
+ if (basePath === "/") {
42
79
  throw new Error(`should use _app instead of _layout in ${dir}`);
43
80
  } else {
44
- const alias = (0, _utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
81
+ const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
45
82
  const componentName = compName(srcDirectory, layout);
46
83
  const route = {
47
- path: `${_basePath.substring(0, _basePath.length - 1)}`,
84
+ path: `${basePath.substring(0, basePath.length - 1)}`,
48
85
  children: [],
49
86
  _component: alias,
50
87
  component: componentName,
51
88
  parent,
52
- type: 'page'
89
+ type: "page"
53
90
  };
54
91
  parent = route;
55
92
  resetParent = true;
@@ -58,28 +95,30 @@ const recursiveReadDir = ({
58
95
  routes = route.children;
59
96
  }
60
97
  }
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);
98
+ for (const relative of import_utils.fs.readdirSync(dir)) {
99
+ const filePath = import_path.default.join(dir, relative);
100
+ if (!(0, import_utils3.shouldSkip)(filePath)) {
101
+ const filename = import_path.default.basename(filePath, import_path.default.extname(filePath));
102
+ const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
66
103
  const componentName = compName(srcDirectory, filePath);
67
- const dynamicRouteMatched = _constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
104
+ const dynamicRouteMatched = import_constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
68
105
  if (dynamicRouteMatched) {
69
106
  if (hasDynamicRoute) {
70
- throw new Error(`Can't set two dynamic route in one directory: ${dir}`);
107
+ throw new Error(
108
+ `Can't set two dynamic route in one directory: ${dir}`
109
+ );
71
110
  } else {
72
111
  hasDynamicRoute = true;
73
112
  }
74
113
  }
75
114
  const route = {
76
- path: `${_basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
115
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
77
116
  _component: alias,
78
117
  component: componentName,
79
118
  parent,
80
- type: 'page'
119
+ type: "page"
81
120
  };
82
- if (_utils.fs.statSync(filePath).isDirectory()) {
121
+ if (import_utils.fs.statSync(filePath).isDirectory()) {
83
122
  recursiveReadDir({
84
123
  dir: filePath,
85
124
  routes,
@@ -89,14 +128,14 @@ const recursiveReadDir = ({
89
128
  });
90
129
  continue;
91
130
  }
92
- if (filename === _constants.FILE_SYSTEM_ROUTES_LAYOUT) {
131
+ if (filename === import_constants.FILE_SYSTEM_ROUTES_LAYOUT) {
93
132
  continue;
94
133
  }
95
- if (filename === _constants.FILE_SYSTEM_ROUTES_INDEX) {
96
- route.path = _basePath === '/' ? _basePath : `${_basePath.substring(0, _basePath.length - 1)}`;
134
+ if (filename === import_constants.FILE_SYSTEM_ROUTES_INDEX) {
135
+ route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
97
136
  }
98
- if (filename === '404' && _basePath === '/') {
99
- route.path = '*';
137
+ if (filename === "404" && basePath === "/") {
138
+ route.path = "*";
100
139
  }
101
140
  routes.push(route);
102
141
  }
@@ -105,36 +144,47 @@ const recursiveReadDir = ({
105
144
  parents.pop();
106
145
  }
107
146
  };
108
- /* eslint-enable no-param-reassign */
109
-
110
147
  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 => {
148
+ const flat = (routes) => routes.reduce(
149
+ (memo, route) => memo.concat(
150
+ Array.isArray(route.children) ? flat(route.children) : [route]
151
+ ),
152
+ []
153
+ );
154
+ const generate = (route) => {
113
155
  const codes = [];
114
156
  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
157
+ const imports = [
158
+ `import React from 'react';`,
159
+ `import ${lastComponent} from '${route._component}'`
160
+ ];
118
161
  while (route = route.parent) {
119
162
  const layoutComponent = route.component;
120
163
  const layoutComponentAbbr = layoutNameAbbr(route._component);
121
164
  imports.push(`import ${layoutComponent} from '${route._component}';`);
122
165
  const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
123
- codes.push(`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`);
166
+ codes.push(
167
+ `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
168
+ );
124
169
  lastComponent = currentComponent;
125
170
  }
126
- const file = _path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
127
- _utils.fs.outputFileSync(file, `${imports.join('\n')}\n${codes.join('\n')}\nexport default ${lastComponent}`);
171
+ const file = import_path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
172
+ import_utils.fs.outputFileSync(
173
+ file,
174
+ `${imports.join("\n")}
175
+ ${codes.join(
176
+ "\n"
177
+ )}
178
+ export default ${lastComponent}`
179
+ );
128
180
  return {
129
181
  component: lastComponent,
130
- _component: (0, _utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
182
+ _component: (0, import_utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
131
183
  };
132
184
  };
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
- }));
185
+ const normalized = flat(nested).map(
186
+ (route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
187
+ );
138
188
  return normalized;
139
189
  };
140
190
  const getClientRoutes = ({
@@ -144,38 +194,44 @@ const getClientRoutes = ({
144
194
  internalDirectory,
145
195
  internalDirAlias
146
196
  }) => {
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.`);
197
+ const { entry, entryName } = entrypoint;
198
+ if (!import_utils.fs.existsSync(entry)) {
199
+ throw new Error(
200
+ `generate file system routes error, ${entry} directory not found.`
201
+ );
153
202
  }
154
- if (!(_utils.fs.existsSync(entry) && _utils.fs.statSync(entry).isDirectory())) {
155
- throw new Error(`generate file system routes error, ${entry} should be directory.`);
203
+ if (!(import_utils.fs.existsSync(entry) && import_utils.fs.statSync(entry).isDirectory())) {
204
+ throw new Error(
205
+ `generate file system routes error, ${entry} should be directory.`
206
+ );
156
207
  }
157
208
  let routes = [];
158
209
  recursiveReadDir({
159
210
  dir: entry,
160
211
  routes,
161
- basePath: '/',
212
+ basePath: "/",
162
213
  srcDirectory,
163
214
  srcAlias
164
215
  });
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);
216
+ const internalComponentsDir = import_path.default.resolve(
217
+ internalDirectory,
218
+ `${entryName}/${import_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
219
+ );
220
+ import_utils.fs.emptyDirSync(internalComponentsDir);
221
+ routes = normalizeNestedRoutes(
222
+ routes,
223
+ internalComponentsDir,
224
+ internalDirectory,
225
+ internalDirAlias
226
+ );
168
227
  parents.length = 0;
169
-
170
- // FIXME: support more situations
171
228
  routes.sort((a, b) => {
172
- const delta = (0, _utils3.getRouteWeight)(a.path) - (0, _utils3.getRouteWeight)(b.path);
229
+ const delta = (0, import_utils3.getRouteWeight)(a.path) - (0, import_utils3.getRouteWeight)(b.path);
173
230
  if (delta === 0) {
174
231
  return a.path.length - b.path.length;
175
232
  }
176
233
  return delta;
177
234
  });
178
- (0, _utils3.debug)(`fileSystem routes: %o`, routes);
235
+ (0, import_utils3.debug)(`fileSystem routes: %o`, routes);
179
236
  return routes;
180
237
  };
181
- exports.getClientRoutes = getClientRoutes;