@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,68 +1,70 @@
1
- import path from 'path';
2
- import { ensureAbsolutePath, fs, findExists, MAIN_ENTRY_NAME } from '@modern-js/utils';
1
+ import path from "path";
2
+ import {
3
+ ensureAbsolutePath,
4
+ fs,
5
+ findExists,
6
+ MAIN_ENTRY_NAME
7
+ } from "@modern-js/utils";
3
8
  import { getFileSystemEntry } from "./getFileSystemEntry";
4
9
  import { JS_EXTENSIONS } from "./constants";
5
- const ensureExtensions = file => {
10
+ const ensureExtensions = (file) => {
6
11
  if (!path.extname(file)) {
7
- return findExists(JS_EXTENSIONS.map(ext => `${file}${ext}`)) || file;
12
+ return findExists(JS_EXTENSIONS.map((ext) => `${file}${ext}`)) || file;
8
13
  }
9
14
  return file;
10
15
  };
11
- const ifAlreadyExists = (entrypoints, checked) => entrypoints.some(entrypoint => {
16
+ const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint) => {
12
17
  if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
13
- // reset entryName
14
18
  checked.entryName = entrypoint.entryName;
15
19
  return true;
16
20
  }
17
- // filesystem routes entrypoint conflict with normal entrypoint.
18
21
  if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
19
- 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.`);
22
+ throw new Error(
23
+ `Entry configuration conflicts
24
+ Your configuration: ${checked.entry}.
25
+ Default entrypoint: ${entrypoint.entry}
26
+ Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`
27
+ );
20
28
  }
21
29
  return false;
22
30
  });
23
- export const getBundleEntry = (appContext, config) => {
31
+ const getBundleEntry = (appContext, config) => {
32
+ const { appDirectory, packageName } = appContext;
24
33
  const {
25
- appDirectory,
26
- packageName
27
- } = appContext;
28
- const {
29
- source: {
30
- disableDefaultEntries,
31
- entries,
32
- entriesDir
33
- }
34
+ source: { disableDefaultEntries, entries, entriesDir }
34
35
  } = config;
35
36
  const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
36
-
37
- // merge entrypoints from user config with directory convention.
38
37
  if (entries) {
39
- Object.keys(entries).forEach(name => {
38
+ Object.keys(entries).forEach((name) => {
40
39
  const value = entries[name];
41
- const entrypoint = typeof value === 'string' ? {
40
+ const entrypoint = typeof value === "string" ? {
42
41
  entryName: name,
43
42
  entry: ensureAbsolutePath(appDirectory, value),
44
43
  isAutoMount: true,
45
- fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : undefined
44
+ fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : void 0
46
45
  } : {
47
46
  entryName: name,
48
47
  entry: ensureAbsolutePath(appDirectory, value.entry),
49
48
  isAutoMount: !value.disableMount,
50
- fileSystemRoutes: value.enableFileSystemRoutes ? {} : undefined
49
+ fileSystemRoutes: value.enableFileSystemRoutes ? {} : void 0
51
50
  };
51
+ if (entrypoint.fileSystemRoutes) {
52
+ entrypoint.nestedRoutesEntry = entrypoint.entry;
53
+ }
52
54
  if (!ifAlreadyExists(defaults, entrypoint)) {
53
55
  defaults.push(entrypoint);
54
56
  }
55
57
  });
56
58
  }
57
59
  if (!disableDefaultEntries) {
58
- // find main entry point which server route is '/'.
59
- const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || '');
60
- const found = defaults.find(({
61
- entryName,
62
- entry,
63
- nestedRoutesEntry: _nestedRoutesEntry = ''
64
- }) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(_nestedRoutesEntry) === entriesDirAbs);
60
+ const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
61
+ const found = defaults.find(
62
+ ({ entryName, entry, nestedRoutesEntry = "" }) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs
63
+ );
65
64
  found && (found.entryName = MAIN_ENTRY_NAME);
66
65
  }
67
66
  return defaults;
68
- };
67
+ };
68
+ export {
69
+ getBundleEntry
70
+ };
@@ -1,28 +1,49 @@
1
- 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; }
2
- 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; }
3
- 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; }
4
- import path from 'path';
5
- import { fs } from '@modern-js/utils';
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";
6
22
  import { makeLegalIdentifier } from "../makeLegalIdentifier";
7
- import { FILE_SYSTEM_ROUTES_COMPONENTS_DIR, FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP, FILE_SYSTEM_ROUTES_INDEX, FILE_SYSTEM_ROUTES_LAYOUT } from "../constants";
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";
8
29
  import { replaceWithAlias } from "../utils";
9
30
  import { debug, findLayout, shouldSkip, getRouteWeight } from "./utils";
10
31
  const compName = (srcDirectory, filePath) => {
11
- const legalCompName = makeLegalIdentifier(path.relative(srcDirectory, filePath));
32
+ const legalCompName = makeLegalIdentifier(
33
+ path.relative(srcDirectory, filePath)
34
+ );
12
35
  return `Comp_${legalCompName}`;
13
36
  };
14
- const layoutNameAbbr = filePath => {
15
- const prefix = 'L_';
16
- const dirName = path.dirname(filePath).split('/').pop() || '';
37
+ const layoutNameAbbr = (filePath) => {
38
+ const prefix = "L_";
39
+ const dirName = path.dirname(filePath).split("/").pop() || "";
17
40
  return `${prefix}${makeLegalIdentifier(dirName)}`;
18
41
  };
19
42
  const parents = [];
20
-
21
- /* eslint-disable no-param-reassign */
22
43
  const recursiveReadDir = ({
23
44
  dir,
24
45
  routes,
25
- basePath: _basePath = '/',
46
+ basePath = "/",
26
47
  srcDirectory,
27
48
  srcAlias
28
49
  }) => {
@@ -31,18 +52,18 @@ const recursiveReadDir = ({
31
52
  let parent = parents[parents.length - 1];
32
53
  const layout = findLayout(dir);
33
54
  if (layout) {
34
- if (_basePath === '/') {
55
+ if (basePath === "/") {
35
56
  throw new Error(`should use _app instead of _layout in ${dir}`);
36
57
  } else {
37
58
  const alias = replaceWithAlias(srcDirectory, layout, srcAlias);
38
59
  const componentName = compName(srcDirectory, layout);
39
60
  const route = {
40
- path: `${_basePath.substring(0, _basePath.length - 1)}`,
61
+ path: `${basePath.substring(0, basePath.length - 1)}`,
41
62
  children: [],
42
63
  _component: alias,
43
64
  component: componentName,
44
65
  parent,
45
- type: 'page'
66
+ type: "page"
46
67
  };
47
68
  parent = route;
48
69
  resetParent = true;
@@ -60,17 +81,19 @@ const recursiveReadDir = ({
60
81
  const dynamicRouteMatched = FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
61
82
  if (dynamicRouteMatched) {
62
83
  if (hasDynamicRoute) {
63
- throw new Error(`Can't set two dynamic route in one directory: ${dir}`);
84
+ throw new Error(
85
+ `Can't set two dynamic route in one directory: ${dir}`
86
+ );
64
87
  } else {
65
88
  hasDynamicRoute = true;
66
89
  }
67
90
  }
68
91
  const route = {
69
- path: `${_basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
92
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
70
93
  _component: alias,
71
94
  component: componentName,
72
95
  parent,
73
- type: 'page'
96
+ type: "page"
74
97
  };
75
98
  if (fs.statSync(filePath).isDirectory()) {
76
99
  recursiveReadDir({
@@ -86,10 +109,10 @@ const recursiveReadDir = ({
86
109
  continue;
87
110
  }
88
111
  if (filename === FILE_SYSTEM_ROUTES_INDEX) {
89
- route.path = _basePath === '/' ? _basePath : `${_basePath.substring(0, _basePath.length - 1)}`;
112
+ route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
90
113
  }
91
- if (filename === '404' && _basePath === '/') {
92
- route.path = '*';
114
+ if (filename === "404" && basePath === "/") {
115
+ route.path = "*";
93
116
  }
94
117
  routes.push(route);
95
118
  }
@@ -98,69 +121,90 @@ const recursiveReadDir = ({
98
121
  parents.pop();
99
122
  }
100
123
  };
101
- /* eslint-enable no-param-reassign */
102
-
103
124
  const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
104
- const flat = routes => routes.reduce((memo, route) => memo.concat(Array.isArray(route.children) ? flat(route.children) : [route]), []);
105
- const generate = route => {
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) => {
106
132
  const codes = [];
107
133
  let lastComponent = route.component;
108
- const imports = [`import React from 'react';`, `import ${lastComponent} from '${route._component}'`];
109
-
110
- // eslint-disable-next-line no-param-reassign, no-cond-assign
134
+ const imports = [
135
+ `import React from 'react';`,
136
+ `import ${lastComponent} from '${route._component}'`
137
+ ];
111
138
  while (route = route.parent) {
112
139
  const layoutComponent = route.component;
113
140
  const layoutComponentAbbr = layoutNameAbbr(route._component);
114
141
  imports.push(`import ${layoutComponent} from '${route._component}';`);
115
142
  const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
116
- codes.push(`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`);
143
+ codes.push(
144
+ `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
145
+ );
117
146
  lastComponent = currentComponent;
118
147
  }
119
148
  const file = path.resolve(internalComponentsDir, `${lastComponent}.jsx`);
120
- fs.outputFileSync(file, `${imports.join('\n')}\n${codes.join('\n')}\nexport default ${lastComponent}`);
149
+ fs.outputFileSync(
150
+ file,
151
+ `${imports.join("\n")}
152
+ ${codes.join(
153
+ "\n"
154
+ )}
155
+ export default ${lastComponent}`
156
+ );
121
157
  return {
122
158
  component: lastComponent,
123
159
  _component: replaceWithAlias(internalDirectory, file, internalDirAlias)
124
160
  };
125
161
  };
126
- const normalized = flat(nested).map(route => route.parent ? _objectSpread(_objectSpread(_objectSpread({}, route), generate(route)), {}, {
127
- parent: undefined
128
- }) : _objectSpread(_objectSpread({}, route), {}, {
129
- parent: undefined
130
- }));
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
+ );
131
165
  return normalized;
132
166
  };
133
- export const getClientRoutes = ({
167
+ const getClientRoutes = ({
134
168
  entrypoint,
135
169
  srcDirectory,
136
170
  srcAlias,
137
171
  internalDirectory,
138
172
  internalDirAlias
139
173
  }) => {
140
- const {
141
- entry,
142
- entryName
143
- } = entrypoint;
144
- if (!fs.existsSync(entry)) {
145
- throw new Error(`generate file system routes error, ${entry} directory not found.`);
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
+ );
146
182
  }
147
- if (!(fs.existsSync(entry) && fs.statSync(entry).isDirectory())) {
148
- throw new Error(`generate file system routes error, ${entry} should be directory.`);
183
+ if (!(fs.existsSync(pageRoutesEntry) && fs.statSync(pageRoutesEntry).isDirectory())) {
184
+ throw new Error(
185
+ `generate file system routes error, ${pageRoutesEntry} should be directory.`
186
+ );
149
187
  }
150
188
  let routes = [];
151
189
  recursiveReadDir({
152
- dir: entry,
190
+ dir: pageRoutesEntry,
153
191
  routes,
154
- basePath: '/',
192
+ basePath: "/",
155
193
  srcDirectory,
156
194
  srcAlias
157
195
  });
158
- const internalComponentsDir = path.resolve(internalDirectory, `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`);
196
+ const internalComponentsDir = path.resolve(
197
+ internalDirectory,
198
+ `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
199
+ );
159
200
  fs.emptyDirSync(internalComponentsDir);
160
- routes = normalizeNestedRoutes(routes, internalComponentsDir, internalDirectory, internalDirAlias);
201
+ routes = normalizeNestedRoutes(
202
+ routes,
203
+ internalComponentsDir,
204
+ internalDirectory,
205
+ internalDirAlias
206
+ );
161
207
  parents.length = 0;
162
-
163
- // FIXME: support more situations
164
208
  routes.sort((a, b) => {
165
209
  const delta = getRouteWeight(a.path) - getRouteWeight(b.path);
166
210
  if (delta === 0) {
@@ -170,4 +214,7 @@ export const getClientRoutes = ({
170
214
  });
171
215
  debug(`fileSystem routes: %o`, routes);
172
216
  return routes;
173
- };
217
+ };
218
+ export {
219
+ getClientRoutes
220
+ };
@@ -1,28 +1,49 @@
1
- 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; }
2
- 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; }
3
- 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; }
4
- import path from 'path';
5
- import { fs } from '@modern-js/utils';
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";
6
22
  import { makeLegalIdentifier } from "../makeLegalIdentifier";
7
- import { FILE_SYSTEM_ROUTES_COMPONENTS_DIR, FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP, FILE_SYSTEM_ROUTES_INDEX, FILE_SYSTEM_ROUTES_LAYOUT } from "../constants";
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";
8
29
  import { replaceWithAlias } from "../utils";
9
30
  import { debug, findLayout, shouldSkip, getRouteWeight } from "./utils";
10
31
  const compName = (srcDirectory, filePath) => {
11
- const legalCompName = makeLegalIdentifier(path.relative(srcDirectory, filePath));
32
+ const legalCompName = makeLegalIdentifier(
33
+ path.relative(srcDirectory, filePath)
34
+ );
12
35
  return `Comp_${legalCompName}`;
13
36
  };
14
- const layoutNameAbbr = filePath => {
15
- const prefix = 'L_';
16
- const dirName = path.dirname(filePath).split('/').pop() || '';
37
+ const layoutNameAbbr = (filePath) => {
38
+ const prefix = "L_";
39
+ const dirName = path.dirname(filePath).split("/").pop() || "";
17
40
  return `${prefix}${makeLegalIdentifier(dirName)}`;
18
41
  };
19
42
  const parents = [];
20
-
21
- /* eslint-disable no-param-reassign */
22
43
  const recursiveReadDirLegacy = ({
23
44
  dir,
24
45
  routes,
25
- basePath: _basePath = '/',
46
+ basePath = "/",
26
47
  srcDirectory,
27
48
  srcAlias
28
49
  }) => {
@@ -31,13 +52,13 @@ const recursiveReadDirLegacy = ({
31
52
  let parent = parents[parents.length - 1];
32
53
  const layout = findLayout(dir);
33
54
  if (layout) {
34
- if (_basePath === '/') {
55
+ if (basePath === "/") {
35
56
  throw new Error(`should use _app instead of _layout in ${dir}`);
36
57
  } else {
37
58
  const alias = replaceWithAlias(srcDirectory, layout, srcAlias);
38
59
  const componentName = compName(srcDirectory, layout);
39
60
  const route = {
40
- path: `${_basePath.substring(0, _basePath.length - 1)}`,
61
+ path: `${basePath.substring(0, basePath.length - 1)}`,
41
62
  exact: false,
42
63
  routes: [],
43
64
  _component: alias,
@@ -60,13 +81,15 @@ const recursiveReadDirLegacy = ({
60
81
  const dynamicRouteMatched = FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
61
82
  if (dynamicRouteMatched) {
62
83
  if (hasDynamicRoute) {
63
- throw new Error(`Can't set two dynamic route in one directory: ${dir}`);
84
+ throw new Error(
85
+ `Can't set two dynamic route in one directory: ${dir}`
86
+ );
64
87
  } else {
65
88
  hasDynamicRoute = true;
66
89
  }
67
90
  }
68
91
  const route = {
69
- path: `${_basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
92
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
70
93
  _component: alias,
71
94
  component: componentName,
72
95
  exact: true,
@@ -86,10 +109,10 @@ const recursiveReadDirLegacy = ({
86
109
  continue;
87
110
  }
88
111
  if (filename === FILE_SYSTEM_ROUTES_INDEX) {
89
- route.path = _basePath === '/' ? _basePath : `${_basePath.substring(0, _basePath.length - 1)}`;
112
+ route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
90
113
  }
91
- if (filename === '404' && _basePath === '/') {
92
- route.path = '*';
114
+ if (filename === "404" && basePath === "/") {
115
+ route.path = "*";
93
116
  route.exact = false;
94
117
  }
95
118
  routes.push(route);
@@ -99,69 +122,85 @@ const recursiveReadDirLegacy = ({
99
122
  parents.pop();
100
123
  }
101
124
  };
102
- /* eslint-enable no-param-reassign */
103
-
104
125
  const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
105
- const flat = routes => routes.reduce((memo, route) => memo.concat(Array.isArray(route.routes) ? flat(route.routes) : [route]), []);
106
- const generate = route => {
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) => {
107
131
  const codes = [];
108
132
  let lastComponent = route.component;
109
- const imports = [`import React from 'react';`, `import ${lastComponent} from '${route._component}'`];
110
-
111
- // eslint-disable-next-line no-param-reassign, no-cond-assign
133
+ const imports = [
134
+ `import React from 'react';`,
135
+ `import ${lastComponent} from '${route._component}'`
136
+ ];
112
137
  while (route = route.parent) {
113
138
  const layoutComponent = route.component;
114
139
  const layoutComponentAbbr = layoutNameAbbr(route._component);
115
140
  imports.push(`import ${layoutComponent} from '${route._component}';`);
116
141
  const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
117
- codes.push(`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`);
142
+ codes.push(
143
+ `const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
144
+ );
118
145
  lastComponent = currentComponent;
119
146
  }
120
147
  const file = path.resolve(internalComponentsDir, `${lastComponent}.jsx`);
121
- fs.outputFileSync(file, `${imports.join('\n')}\n${codes.join('\n')}\nexport default ${lastComponent}`);
148
+ fs.outputFileSync(
149
+ file,
150
+ `${imports.join("\n")}
151
+ ${codes.join(
152
+ "\n"
153
+ )}
154
+ export default ${lastComponent}`
155
+ );
122
156
  return {
123
157
  component: lastComponent,
124
158
  _component: replaceWithAlias(internalDirectory, file, internalDirAlias)
125
159
  };
126
160
  };
127
- const normalized = flat(nested).map(route => route.parent ? _objectSpread(_objectSpread(_objectSpread({}, route), generate(route)), {}, {
128
- parent: undefined
129
- }) : _objectSpread(_objectSpread({}, route), {}, {
130
- parent: undefined
131
- }));
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
+ );
132
164
  return normalized;
133
165
  };
134
- export const getClientRoutes = ({
166
+ const getClientRoutes = ({
135
167
  entrypoint,
136
168
  srcDirectory,
137
169
  srcAlias,
138
170
  internalDirectory,
139
171
  internalDirAlias
140
172
  }) => {
141
- const {
142
- entry,
143
- entryName
144
- } = entrypoint;
173
+ const { entry, entryName } = entrypoint;
145
174
  if (!fs.existsSync(entry)) {
146
- throw new Error(`generate file system routes error, ${entry} directory not found.`);
175
+ throw new Error(
176
+ `generate file system routes error, ${entry} directory not found.`
177
+ );
147
178
  }
148
179
  if (!(fs.existsSync(entry) && fs.statSync(entry).isDirectory())) {
149
- throw new Error(`generate file system routes error, ${entry} should be directory.`);
180
+ throw new Error(
181
+ `generate file system routes error, ${entry} should be directory.`
182
+ );
150
183
  }
151
184
  let routes = [];
152
185
  recursiveReadDirLegacy({
153
186
  dir: entry,
154
187
  routes,
155
- basePath: '/',
188
+ basePath: "/",
156
189
  srcDirectory,
157
190
  srcAlias
158
191
  });
159
- const internalComponentsDir = path.resolve(internalDirectory, `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`);
192
+ const internalComponentsDir = path.resolve(
193
+ internalDirectory,
194
+ `${entryName}/${FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
195
+ );
160
196
  fs.emptyDirSync(internalComponentsDir);
161
- routes = normalizeNestedRoutes(routes, internalComponentsDir, internalDirectory, internalDirAlias);
197
+ routes = normalizeNestedRoutes(
198
+ routes,
199
+ internalComponentsDir,
200
+ internalDirectory,
201
+ internalDirAlias
202
+ );
162
203
  parents.length = 0;
163
-
164
- // FIXME: support more situations
165
204
  routes.sort((a, b) => {
166
205
  const delta = getRouteWeight(a.path) - getRouteWeight(b.path);
167
206
  if (delta === 0) {
@@ -171,4 +210,7 @@ export const getClientRoutes = ({
171
210
  });
172
211
  debug(`fileSystem routes: %o`, routes);
173
212
  return routes;
174
- };
213
+ };
214
+ export {
215
+ getClientRoutes
216
+ };
@@ -1,2 +1,6 @@
1
- export { getClientRoutes } from "./getRoutes";
2
- export { getClientRoutes as getClientRoutesLegacy } from "./getRoutesLegacy";
1
+ import { getClientRoutes } from "./getRoutes";
2
+ import { getClientRoutes as getClientRoutes2 } from "./getRoutesLegacy";
3
+ export {
4
+ getClientRoutes,
5
+ getClientRoutes2 as getClientRoutesLegacy
6
+ };
@@ -1,12 +1,19 @@
1
- import path from 'path';
2
- import { createDebugger, findExists, fs } from '@modern-js/utils';
3
- import { JS_EXTENSIONS, FILE_SYSTEM_ROUTES_LAYOUT, FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT, FILE_SYSTEM_ROUTES_IGNORED_REGEX } from "../constants";
4
- const debug = createDebugger('get-client-routes');
5
- export { debug };
6
- export const findLayout = dir => findExists(JS_EXTENSIONS.map(ext => path.resolve(dir, `${FILE_SYSTEM_ROUTES_LAYOUT}${ext}`)));
7
- export const getRouteWeight = route => route === '*' ? 999 : route.split(':').length - 1;
8
- export const shouldSkip = file => {
9
- // should not skip directory.
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) => {
10
17
  if (fs.statSync(file).isDirectory()) {
11
18
  return false;
12
19
  }
@@ -15,4 +22,10 @@ export const shouldSkip = file => {
15
22
  return true;
16
23
  }
17
24
  return false;
18
- };
25
+ };
26
+ export {
27
+ debug,
28
+ findLayout,
29
+ getRouteWeight,
30
+ shouldSkip
31
+ };