@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,55 +1,92 @@
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 * as path from 'path';
5
- import { fs, getRouteId, normalizeToPosixPath } from '@modern-js/utils';
6
- import { JS_EXTENSIONS } from "./constants";
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
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import * as path from "path";
41
+ import { fs, getRouteId } from "@modern-js/utils";
42
+ import { JS_EXTENSIONS, NESTED_ROUTE } from "./constants";
7
43
  import { hasLoader, replaceWithAlias } from "./utils";
8
- const LAYOUT_FILE = 'layout';
9
- const PAGE_FILE = 'page';
10
- const LOADING_FILE = 'loading';
11
- const ERROR_FILE = 'error';
12
- const LOADER_FILE = 'loader';
13
- const conventionNames = [LAYOUT_FILE, PAGE_FILE, LOADING_FILE, ERROR_FILE, LOADER_FILE];
14
- const getLoaderPath = async filename => {
15
- if (await hasLoader(filename)) {
16
- return normalizeToPosixPath(filename);
44
+ const conventionNames = Object.values(NESTED_ROUTE);
45
+ const getLoaderPath = (filename) => __async(void 0, null, function* () {
46
+ if (yield hasLoader(filename)) {
47
+ return filename;
17
48
  }
18
- return undefined;
19
- };
20
- const replaceDynamicPath = routePath => {
21
- return routePath.replace(/\[(.*?)\]/g, ':$1');
49
+ return void 0;
50
+ });
51
+ const replaceDynamicPath = (routePath) => {
52
+ return routePath.replace(/\[(.*?)\]/g, ":$1");
22
53
  };
23
54
  const createIndexRoute = (routeInfo, rootDir, filename, entryName) => {
24
- return createRoute(_objectSpread(_objectSpread({}, routeInfo), {}, {
25
- index: true,
26
- children: undefined
27
- }), rootDir, filename, entryName);
55
+ return createRoute(
56
+ __spreadProps(__spreadValues({}, routeInfo), {
57
+ index: true,
58
+ children: void 0
59
+ }),
60
+ rootDir,
61
+ filename,
62
+ entryName
63
+ );
28
64
  };
29
65
  const createRoute = (routeInfo, rootDir, filename, entryName) => {
30
66
  const id = getRouteId(filename, rootDir, entryName);
31
- return _objectSpread(_objectSpread({}, routeInfo), {}, {
67
+ return __spreadProps(__spreadValues({}, routeInfo), {
32
68
  id,
33
- type: 'nested'
69
+ type: "nested"
34
70
  });
35
71
  };
36
- export const walk = async (dirname, rootDir, alias, entryName) => {
37
- if (!(await fs.pathExists(dirname))) {
72
+ const walk = (dirname, rootDir, alias, entryName) => __async(void 0, null, function* () {
73
+ var _a, _b;
74
+ if (!(yield fs.pathExists(dirname))) {
38
75
  return null;
39
76
  }
40
- const isDirectory = (await fs.stat(dirname)).isDirectory();
77
+ const isDirectory = (yield fs.stat(dirname)).isDirectory();
41
78
  if (!isDirectory) {
42
79
  return null;
43
80
  }
44
81
  const relativeDir = path.relative(rootDir, dirname);
45
82
  const pathSegments = relativeDir.split(path.sep);
46
83
  const lastSegment = pathSegments[pathSegments.length - 1];
47
- const isRoot = lastSegment === '';
48
- const isPathlessLayout = lastSegment.startsWith('__');
49
- const isWithoutLayoutPath = lastSegment.includes('.');
50
- let routePath = isRoot || isPathlessLayout ? '/' : `${lastSegment}`;
84
+ const isRoot = lastSegment === "";
85
+ const isPathlessLayout = lastSegment.startsWith("__");
86
+ const isWithoutLayoutPath = lastSegment.includes(".");
87
+ let routePath = isRoot || isPathlessLayout ? "/" : `${lastSegment}`;
51
88
  if (isWithoutLayoutPath) {
52
- routePath = lastSegment.split('.').join('/');
89
+ routePath = lastSegment.split(".").join("/");
53
90
  }
54
91
  routePath = replaceDynamicPath(routePath);
55
92
  const route = {
@@ -57,57 +94,73 @@ export const walk = async (dirname, rootDir, alias, entryName) => {
57
94
  children: [],
58
95
  isRoot
59
96
  };
60
- const items = await fs.readdir(dirname);
97
+ let pageLoaderFile = "";
98
+ let pageRoute = null;
99
+ const items = yield fs.readdir(dirname);
61
100
  for (const item of items) {
62
101
  const itemPath = path.join(dirname, item);
63
102
  const extname = path.extname(item);
64
103
  const itemWithoutExt = item.slice(0, -extname.length);
65
- const isDirectory = (await fs.stat(itemPath)).isDirectory();
66
- if (isDirectory) {
67
- const childRoute = await walk(itemPath, rootDir, alias, entryName);
104
+ const isDirectory2 = (yield fs.stat(itemPath)).isDirectory();
105
+ if (isDirectory2) {
106
+ const childRoute = yield walk(itemPath, rootDir, alias, entryName);
68
107
  if (childRoute) {
69
- var _route$children;
70
- (_route$children = route.children) === null || _route$children === void 0 ? void 0 : _route$children.push(childRoute);
108
+ (_a = route.children) == null ? void 0 : _a.push(childRoute);
71
109
  }
72
110
  }
73
111
  if (extname && (!JS_EXTENSIONS.includes(extname) || !conventionNames.includes(itemWithoutExt))) {
74
112
  continue;
75
113
  }
76
- if (itemWithoutExt === LAYOUT_FILE) {
114
+ if (itemWithoutExt === NESTED_ROUTE.LAYOUT_LOADER_FILE) {
115
+ if (!route.loader) {
116
+ route.loader = itemPath;
117
+ }
118
+ }
119
+ if (itemWithoutExt === NESTED_ROUTE.LAYOUT_FILE) {
77
120
  route._component = replaceWithAlias(alias.basename, itemPath, alias.name);
78
- route.loader = await getLoaderPath(itemPath);
121
+ const loaderPath = yield getLoaderPath(itemPath);
122
+ if (loaderPath) {
123
+ route.loader = loaderPath;
124
+ }
79
125
  }
80
- if (itemWithoutExt === PAGE_FILE) {
81
- var _route$children2;
82
- const childRoute = createIndexRoute({
83
- _component: replaceWithAlias(alias.basename, itemPath, alias.name)
84
- }, rootDir, itemPath, entryName);
85
- childRoute.loader = await getLoaderPath(itemPath);
86
- (_route$children2 = route.children) === null || _route$children2 === void 0 ? void 0 : _route$children2.push(childRoute);
126
+ if (itemWithoutExt === NESTED_ROUTE.PAGE_LOADER_FILE) {
127
+ pageLoaderFile = itemPath;
87
128
  }
88
-
89
- // if (itemWithoutExt === LOADER_FILE) {
90
- // route.loader = replaceWithAlias(alias.basename, itemPath, alias.name);
91
- // }
92
-
93
- if (itemWithoutExt === LOADING_FILE) {
129
+ if (itemWithoutExt === NESTED_ROUTE.PAGE_FILE) {
130
+ pageRoute = createIndexRoute(
131
+ {
132
+ _component: replaceWithAlias(alias.basename, itemPath, alias.name)
133
+ },
134
+ rootDir,
135
+ itemPath,
136
+ entryName
137
+ );
138
+ const loaderPath = yield getLoaderPath(itemPath);
139
+ if (loaderPath) {
140
+ pageRoute.loader = loaderPath;
141
+ } else if (pageLoaderFile) {
142
+ pageRoute.loader = pageLoaderFile;
143
+ }
144
+ (_b = route.children) == null ? void 0 : _b.push(pageRoute);
145
+ }
146
+ if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
94
147
  route.loading = replaceWithAlias(alias.basename, itemPath, alias.name);
95
148
  }
96
- if (itemWithoutExt === ERROR_FILE) {
149
+ if (itemWithoutExt === NESTED_ROUTE.ERROR_FILE) {
97
150
  route.error = replaceWithAlias(alias.basename, itemPath, alias.name);
98
151
  }
99
152
  }
100
- const finalRoute = createRoute(route, rootDir, path.join(dirname, `${LAYOUT_FILE}.ts`), entryName);
101
-
102
- /**
103
- * when the url is /, the __auth/layout.tsx component should not be rendered
104
- * - routes
105
- * - __auth
106
- * - layout.tsx
107
- * - layout.tsx
108
- */
153
+ const finalRoute = createRoute(
154
+ route,
155
+ rootDir,
156
+ path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`),
157
+ entryName
158
+ );
109
159
  if (isPathlessLayout) {
110
160
  delete finalRoute.path;
111
161
  }
112
162
  return finalRoute;
113
- };
163
+ });
164
+ export {
165
+ walk
166
+ };
@@ -1,13 +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
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import path from "path";
41
+ import { fs, slash } from "@modern-js/utils";
6
42
  import { TEMP_LOADERS_DIR } from "./constants";
7
- export const index = ({
43
+ const index = ({
8
44
  mountId,
9
45
  imports,
10
- renderFunction,
46
+ renderFunction: renderFunction2,
11
47
  exportStatement
12
48
  }) => `
13
49
  const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
@@ -21,27 +57,25 @@ let AppWrapper = null;
21
57
  let root = null;
22
58
 
23
59
  function render() {
24
- ${renderFunction}
60
+ ${renderFunction2}
25
61
  }
26
62
 
27
63
  AppWrapper = render();
28
64
 
29
65
  ${exportStatement};
30
66
  `;
31
- export const renderFunction = ({
67
+ const renderFunction = ({
32
68
  plugins,
33
69
  customBootstrap,
34
- fileSystemRoutes
70
+ fileSystemRoutes: fileSystemRoutes2
35
71
  }) => `
36
72
  AppWrapper = createApp({
37
73
  plugins: [
38
- ${plugins.map(({
39
- name,
40
- options,
41
- args
42
- }) => `${name}({...${options}, ...App?.config?.${args || name}}),`).join('\n')}
74
+ ${plugins.map(
75
+ ({ name, options, args }) => `${name}({...${options}, ...App?.config?.${args || name}}),`
76
+ ).join("\n")}
43
77
  ]
44
- })(${fileSystemRoutes ? '' : `App`})
78
+ })(${fileSystemRoutes2 ? "" : `App`})
45
79
 
46
80
  if (IS_BROWSER) {
47
81
  ${customBootstrap ? `customBootstrap(AppWrapper);` : `bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM);`}
@@ -49,19 +83,19 @@ export const renderFunction = ({
49
83
 
50
84
  return AppWrapper
51
85
  `;
52
- export const html = partials => `
86
+ const html = (partials) => `
53
87
  <!DOCTYPE html>
54
88
  <html>
55
89
  <head>
56
90
  <%= meta %>
57
91
  <title><%= title %></title>
58
92
 
59
- ${partials.top.join('\n')}
93
+ ${partials.top.join("\n")}
60
94
 
61
95
  <script>
62
96
  window.__assetPrefix__ = '<%= assetPrefix %>';
63
- </script>
64
- ${partials.head.join('\n')}
97
+ <\/script>
98
+ ${partials.head.join("\n")}
65
99
 
66
100
  <!--<?- chunksMap.css ?>-->
67
101
  </head>
@@ -71,7 +105,7 @@ export const html = partials => `
71
105
  We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.
72
106
  </noscript>
73
107
  <div id="<%= mountId %>"><!--<?- html ?>--></div>
74
- ${partials.body.join('\n')}
108
+ ${partials.body.join("\n")}
75
109
  <!--<?- chunksMap.js ?>-->
76
110
  <!--<?- SSRDataScript ?>-->
77
111
  <!--<?- bottomTemplate ?>-->
@@ -79,27 +113,32 @@ export const html = partials => `
79
113
 
80
114
  </html>
81
115
  `;
82
- export const routesForServer = ({
116
+ const routesForServer = ({
83
117
  routes,
84
118
  internalDirectory,
85
119
  entryName
86
120
  }) => {
87
121
  const loaders = [];
88
- const loaderIndexFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, 'index.js');
89
- const traverseRouteTree = route => {
122
+ const loaderIndexFile = path.join(
123
+ internalDirectory,
124
+ entryName,
125
+ TEMP_LOADERS_DIR,
126
+ "index.js"
127
+ );
128
+ const traverseRouteTree = (route) => {
129
+ var _a;
90
130
  let children;
91
- if ('children' in route && route.children) {
92
- var _route$children;
93
- children = route === null || route === void 0 ? void 0 : (_route$children = route.children) === null || _route$children === void 0 ? void 0 : _route$children.map(traverseRouteTree);
131
+ if ("children" in route && route.children) {
132
+ children = (_a = route == null ? void 0 : route.children) == null ? void 0 : _a.map(traverseRouteTree);
94
133
  }
95
134
  let loader;
96
- if (route.type === 'nested') {
135
+ if (route.type === "nested") {
97
136
  if (route.loader) {
98
137
  loaders.push(route.loader);
99
138
  loader = `loader_${loaders.length - 1}`;
100
139
  }
101
140
  }
102
- const finalRoute = _objectSpread(_objectSpread({}, route), {}, {
141
+ const finalRoute = __spreadProps(__spreadValues({}, route), {
103
142
  loader,
104
143
  children
105
144
  });
@@ -109,62 +148,82 @@ export const routesForServer = ({
109
148
  export const routes = [
110
149
  `;
111
150
  for (const route of routes) {
112
- if ('type' in route) {
151
+ if ("type" in route) {
113
152
  const newRoute = traverseRouteTree(route);
114
- routesCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loader_[^"])"/g, '$1')},`;
153
+ routesCode += `${JSON.stringify(newRoute, null, 2).replace(
154
+ /"(loader_[^"])"/g,
155
+ "$1"
156
+ )},`;
115
157
  } else {
116
158
  routesCode += `${JSON.stringify(route, null, 2)}`;
117
159
  }
118
160
  }
119
- routesCode += `\n];`;
120
- let importLoadersCode = '';
161
+ routesCode += `
162
+ ];`;
163
+ let importLoadersCode = "";
121
164
  if (loaders.length > 0) {
122
165
  importLoadersCode = `
123
- import { ${loaders.map((loader, index) => `loader_${index}`)} } from "${loaderIndexFile}"`;
166
+ import { ${loaders.map(
167
+ (loader, index2) => `loader_${index2}`
168
+ )} } from "${slash(loaderIndexFile)}"`;
124
169
  }
125
170
  return `
126
171
  ${importLoadersCode}
127
172
  ${routesCode}
128
173
  `;
129
174
  };
130
- export const fileSystemRoutes = async ({
175
+ const fileSystemRoutes = (_0) => __async(void 0, [_0], function* ({
131
176
  routes,
132
177
  ssrMode,
133
178
  nestedRoutesEntry,
134
179
  entryName,
135
- internalDirectory
136
- }) => {
180
+ internalDirectory,
181
+ internalDirAlias
182
+ }) {
137
183
  const loadings = [];
138
184
  const errors = [];
139
185
  const loaders = [];
140
186
  const loadersMap = {};
141
- const loadersIndexFile = path.join('@_modern_js_internal', entryName, TEMP_LOADERS_DIR, 'index.js');
142
- const loadersMapFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, 'map.json');
187
+ const loadersIndexFile = path.join(
188
+ internalDirAlias,
189
+ entryName,
190
+ TEMP_LOADERS_DIR,
191
+ "index.js"
192
+ );
193
+ const loadersMapFile = path.join(
194
+ internalDirectory,
195
+ entryName,
196
+ TEMP_LOADERS_DIR,
197
+ "map.json"
198
+ );
143
199
  const importLazyCode = `
144
200
  import { lazy } from "react";
145
201
  import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
146
202
  `;
147
203
  let rootLayoutCode = ``;
148
- let dataLoaderPath = '';
149
- let componentLoaderPath = '';
204
+ let dataLoaderPath = "";
205
+ let componentLoaderPath = "";
150
206
  if (ssrMode) {
151
- dataLoaderPath = require.resolve(`@modern-js/plugin-data-loader/loader`);
207
+ dataLoaderPath = require.resolve("@modern-js/plugin-data-loader/loader");
152
208
  if (nestedRoutesEntry) {
153
209
  dataLoaderPath = `${dataLoaderPath}?routesDir=${nestedRoutesEntry}&mapFile=${loadersMapFile}!`;
154
210
  }
155
- componentLoaderPath = `${path.join(__dirname, '../builder/loaders/routerLoader')}!`;
211
+ componentLoaderPath = `${path.join(
212
+ __dirname,
213
+ "../builder/loaders/routerLoader"
214
+ )}!`;
156
215
  }
157
- const traverseRouteTree = route => {
216
+ const traverseRouteTree = (route) => {
217
+ var _a;
158
218
  let children;
159
- if ('children' in route && route.children) {
160
- var _route$children2;
161
- children = route === null || route === void 0 ? void 0 : (_route$children2 = route.children) === null || _route$children2 === void 0 ? void 0 : _route$children2.map(traverseRouteTree);
219
+ if ("children" in route && route.children) {
220
+ children = (_a = route == null ? void 0 : route.children) == null ? void 0 : _a.map(traverseRouteTree);
162
221
  }
163
222
  let loading;
164
223
  let error;
165
224
  let loader;
166
- let component = '';
167
- if (route.type === 'nested') {
225
+ let component = "";
226
+ if (route.type === "nested") {
168
227
  if (route.loading) {
169
228
  loadings.push(route.loading);
170
229
  loading = `loading_${loadings.length - 1}`;
@@ -183,17 +242,16 @@ export const fileSystemRoutes = async ({
183
242
  if (route.isRoot) {
184
243
  rootLayoutCode = `import RootLayout from '${route._component}'`;
185
244
  component = `RootLayout`;
186
- } else if (ssrMode === 'string') {
245
+ } else if (ssrMode === "string") {
187
246
  component = `loadable(() => import(/* webpackChunkName: "${route.id}" */ '${componentLoaderPath}${route._component}'))`;
188
247
  } else {
189
- // csr and streaming
190
248
  component = `lazy(() => import(/* webpackChunkName: "${route.id}" */ '${componentLoaderPath}${route._component}'))`;
191
249
  }
192
250
  }
193
251
  } else if (route._component) {
194
252
  component = `loadable(() => import('${route._component}'))`;
195
253
  }
196
- const finalRoute = _objectSpread(_objectSpread({}, route), {}, {
254
+ const finalRoute = __spreadProps(__spreadValues({}, route), {
197
255
  loading,
198
256
  loader,
199
257
  error,
@@ -208,45 +266,69 @@ export const fileSystemRoutes = async ({
208
266
  export const routes = [
209
267
  `;
210
268
  for (const route of routes) {
211
- if ('type' in route) {
269
+ if ("type" in route) {
212
270
  const newRoute = traverseRouteTree(route);
213
- routeComponentsCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loadable.*\))"/g, '$1').replace(/"(loadableLazy.*\))"/g, '$1').replace(/"(lazy.*\))"/g, '$1').replace(/"(loading_[^"])"/g, '$1').replace(/"(loader_[^"])"/g, '$1').replace(/"(RootLayout)"/g, '$1').replace(/"(error_[^"])"/g, '$1').replace(/\\"/g, '"')},`;
271
+ routeComponentsCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loadable.*\))"/g, "$1").replace(/"(loadableLazy.*\))"/g, "$1").replace(/"(lazy.*\))"/g, "$1").replace(/"(loading_[^"])"/g, "$1").replace(/"(loader_[^"])"/g, "$1").replace(/"(RootLayout)"/g, "$1").replace(/"(error_[^"])"/g, "$1").replace(/\\"/g, '"')},`;
214
272
  } else {
215
273
  const component = `loadable(() => import('${route._component}'))`;
216
- const finalRoute = _objectSpread(_objectSpread({}, route), {}, {
274
+ const finalRoute = __spreadProps(__spreadValues({}, route), {
217
275
  component
218
276
  });
219
- routeComponentsCode += `${JSON.stringify(finalRoute, null, 2).replace(/"(loadable[^"]*)"/g, '$1').replace(/"(lazy[^"]*)"/g, '$1')},`;
277
+ routeComponentsCode += `${JSON.stringify(finalRoute, null, 2).replace(/"(loadable[^"]*)"/g, "$1").replace(/"(lazy[^"]*)"/g, "$1")},`;
220
278
  }
221
279
  }
222
- routeComponentsCode += `\n];`;
223
- const importLoadingCode = loadings.map((loading, index) => {
224
- return `import loading_${index} from '${loading}';\n`;
225
- }).join('');
226
- const importErrorComponentsCode = errors.map((error, index) => {
227
- return `import error_${index} from '${error}';\n`;
228
- }).join('');
229
- let importLoadersCode = '';
280
+ routeComponentsCode += `
281
+ ];`;
282
+ const importLoadingCode = loadings.map((loading, index2) => {
283
+ return `import loading_${index2} from '${loading}';
284
+ `;
285
+ }).join("");
286
+ const importErrorComponentsCode = errors.map((error, index2) => {
287
+ return `import error_${index2} from '${error}';
288
+ `;
289
+ }).join("");
290
+ let importLoadersCode = "";
230
291
  if (loaders.length > 0) {
231
292
  importLoadersCode = `
232
- import { ${loaders.map((loader, index) => `loader_${index}`)} } from "${dataLoaderPath}${loadersIndexFile}"
293
+ import { ${loaders.map(
294
+ (loader, index2) => `loader_${index2}`
295
+ )} } from "${slash(dataLoaderPath)}${slash(loadersIndexFile)}"
233
296
  `;
234
- const loaderEntryCode = loaders.map((loader, index) => {
235
- return `export * from './loader_${index}.js';`;
236
- }).join('\n');
237
- const loaderEntryFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, 'entry.js');
238
- await fs.ensureFile(loaderEntryFile);
239
- await fs.writeFile(loaderEntryFile, loaderEntryCode);
240
- await fs.writeJSON(loadersMapFile, loadersMap);
241
- await Promise.all(loaders.map(async (loader, index) => {
242
- const name = `loader_${index}`;
243
- const filename = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, `${name}.js`);
244
- const code = `
245
- export { loader as ${name} } from '${loader}'
297
+ const loaderEntryCode = loaders.map((loader, index2) => {
298
+ return `export * from './loader_${index2}.js';`;
299
+ }).join("\n");
300
+ const loaderEntryFile = path.join(
301
+ internalDirectory,
302
+ entryName,
303
+ TEMP_LOADERS_DIR,
304
+ "entry.js"
305
+ );
306
+ yield fs.ensureFile(loaderEntryFile);
307
+ yield fs.writeFile(loaderEntryFile, loaderEntryCode);
308
+ yield fs.writeJSON(loadersMapFile, loadersMap);
309
+ yield Promise.all(
310
+ loaders.map((loader, index2) => __async(void 0, null, function* () {
311
+ const name = `loader_${index2}`;
312
+ const filename = path.join(
313
+ internalDirectory,
314
+ entryName,
315
+ TEMP_LOADERS_DIR,
316
+ `${name}.js`
317
+ );
318
+ let code = "";
319
+ if (loader.includes(".loader.")) {
320
+ code = `
321
+ export { default as ${name} } from '${slash(loader)}'
322
+ `;
323
+ } else {
324
+ code = `
325
+ export { loader as ${name} } from '${slash(loader)}'
246
326
  `;
247
- await fs.ensureFile(filename);
248
- await fs.writeFile(filename, code);
249
- }));
327
+ }
328
+ yield fs.ensureFile(filename);
329
+ yield fs.writeFile(filename, code);
330
+ }))
331
+ );
250
332
  }
251
333
  return `
252
334
  ${importLazyCode}
@@ -256,4 +338,11 @@ export const fileSystemRoutes = async ({
256
338
  ${importLoadersCode}
257
339
  ${routeComponentsCode}
258
340
  `;
259
- };
341
+ });
342
+ export {
343
+ fileSystemRoutes,
344
+ html,
345
+ index,
346
+ renderFunction,
347
+ routesForServer
348
+ };