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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/js/modern/analyze/constants.js +38 -18
  2. package/dist/js/modern/analyze/generateCode.js +261 -221
  3. package/dist/js/modern/analyze/getBundleEntry.js +31 -32
  4. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  5. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  6. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  7. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  8. package/dist/js/modern/analyze/getFileSystemEntry.js +43 -22
  9. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  10. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  11. package/dist/js/modern/analyze/index.js +193 -159
  12. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  13. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  14. package/dist/js/modern/analyze/nestedRoutes.js +106 -60
  15. package/dist/js/modern/analyze/templates.js +161 -80
  16. package/dist/js/modern/analyze/utils.js +87 -66
  17. package/dist/js/modern/builder/builderPlugins/compatModern.js +121 -109
  18. package/dist/js/modern/builder/index.js +122 -83
  19. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  20. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  21. package/dist/js/modern/builder/share.js +22 -20
  22. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  23. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  24. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +98 -84
  25. package/dist/js/modern/commands/build.js +67 -42
  26. package/dist/js/modern/commands/deploy.js +27 -4
  27. package/dist/js/modern/commands/dev.js +77 -27
  28. package/dist/js/modern/commands/index.js +1 -1
  29. package/dist/js/modern/commands/inspect.js +30 -5
  30. package/dist/js/modern/commands/start.js +37 -15
  31. package/dist/js/modern/config/default.js +103 -113
  32. package/dist/js/modern/config/index.js +8 -2
  33. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  34. package/dist/js/modern/config/initial/createOutputConfig.js +9 -10
  35. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  36. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  37. package/dist/js/modern/config/initial/index.js +9 -4
  38. package/dist/js/modern/config/initial/inits.js +109 -73
  39. package/dist/js/modern/config/initial/transformNormalizedConfig.js +6 -3
  40. package/dist/js/modern/defineConfig.js +26 -11
  41. package/dist/js/modern/exports/server.js +4 -1
  42. package/dist/js/modern/hooks.js +10 -3
  43. package/dist/js/modern/index.js +140 -89
  44. package/dist/js/modern/initialize/index.js +98 -51
  45. package/dist/js/modern/locale/en.js +20 -21
  46. package/dist/js/modern/locale/index.js +6 -6
  47. package/dist/js/modern/locale/zh.js +21 -22
  48. package/dist/js/modern/schema/Schema.js +6 -5
  49. package/dist/js/modern/schema/index.js +51 -100
  50. package/dist/js/modern/schema/legacy.js +96 -231
  51. package/dist/js/modern/types/config/index.js +0 -1
  52. package/dist/js/modern/types/index.js +0 -1
  53. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  54. package/dist/js/modern/utils/commands.js +5 -2
  55. package/dist/js/modern/utils/config.js +102 -41
  56. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  57. package/dist/js/modern/utils/createServer.js +63 -17
  58. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  59. package/dist/js/modern/utils/language.js +6 -3
  60. package/dist/js/modern/utils/printInstructions.js +27 -8
  61. package/dist/js/modern/utils/restart.js +43 -16
  62. package/dist/js/modern/utils/routes.js +29 -12
  63. package/dist/js/node/analyze/constants.js +54 -39
  64. package/dist/js/node/analyze/generateCode.js +281 -239
  65. package/dist/js/node/analyze/getBundleEntry.js +55 -44
  66. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  67. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  68. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  69. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  70. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  71. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  72. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  73. package/dist/js/node/analyze/index.js +240 -174
  74. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  75. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  76. package/dist/js/node/analyze/nestedRoutes.js +137 -75
  77. package/dist/js/node/analyze/templates.js +183 -89
  78. package/dist/js/node/analyze/utils.js +114 -81
  79. package/dist/js/node/builder/builderPlugins/compatModern.js +149 -122
  80. package/dist/js/node/builder/index.js +150 -92
  81. package/dist/js/node/builder/loaders/routerLoader.js +27 -18
  82. package/dist/js/node/builder/loaders/serverModuleLoader.js +22 -7
  83. package/dist/js/node/builder/share.js +45 -25
  84. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  85. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  86. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +116 -90
  87. package/dist/js/node/commands/build.js +89 -52
  88. package/dist/js/node/commands/deploy.js +45 -10
  89. package/dist/js/node/commands/dev.js +99 -41
  90. package/dist/js/node/commands/index.js +19 -38
  91. package/dist/js/node/commands/inspect.js +48 -11
  92. package/dist/js/node/commands/start.js +65 -26
  93. package/dist/js/node/config/default.js +119 -117
  94. package/dist/js/node/config/index.js +25 -29
  95. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  96. package/dist/js/node/config/initial/createOutputConfig.js +26 -14
  97. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  98. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  99. package/dist/js/node/config/initial/index.js +28 -17
  100. package/dist/js/node/config/initial/inits.js +126 -81
  101. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  102. package/dist/js/node/defineConfig.js +43 -17
  103. package/dist/js/node/exports/server.js +21 -10
  104. package/dist/js/node/hooks.js +44 -29
  105. package/dist/js/node/index.js +190 -130
  106. package/dist/js/node/initialize/index.js +116 -61
  107. package/dist/js/node/locale/en.js +36 -25
  108. package/dist/js/node/locale/index.js +27 -15
  109. package/dist/js/node/locale/zh.js +37 -26
  110. package/dist/js/node/schema/Schema.js +23 -10
  111. package/dist/js/node/schema/index.js +77 -114
  112. package/dist/js/node/schema/legacy.js +117 -240
  113. package/dist/js/node/types/config/index.js +17 -16
  114. package/dist/js/node/types/index.js +19 -38
  115. package/dist/js/node/types/legacyConfig/output.js +0 -5
  116. package/dist/js/node/utils/commands.js +21 -6
  117. package/dist/js/node/utils/config.js +120 -51
  118. package/dist/js/node/utils/createFileWatcher.js +104 -61
  119. package/dist/js/node/utils/createServer.js +86 -25
  120. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  121. package/dist/js/node/utils/language.js +24 -8
  122. package/dist/js/node/utils/printInstructions.js +47 -16
  123. package/dist/js/node/utils/restart.js +61 -21
  124. package/dist/js/node/utils/routes.js +53 -18
  125. package/dist/js/treeshaking/analyze/constants.js +28 -18
  126. package/dist/js/treeshaking/analyze/generateCode.js +599 -406
  127. package/dist/js/treeshaking/analyze/getBundleEntry.js +52 -63
  128. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  129. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  130. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  131. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  132. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  133. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  134. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  135. package/dist/js/treeshaking/analyze/index.js +558 -303
  136. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  137. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  138. package/dist/js/treeshaking/analyze/nestedRoutes.js +411 -200
  139. package/dist/js/treeshaking/analyze/templates.js +433 -236
  140. package/dist/js/treeshaking/analyze/utils.js +358 -153
  141. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +281 -200
  142. package/dist/js/treeshaking/builder/index.js +371 -163
  143. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  144. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  145. package/dist/js/treeshaking/builder/share.js +41 -44
  146. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  147. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  148. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +332 -112
  149. package/dist/js/treeshaking/commands/build.js +286 -88
  150. package/dist/js/treeshaking/commands/deploy.js +153 -25
  151. package/dist/js/treeshaking/commands/dev.js +318 -131
  152. package/dist/js/treeshaking/commands/index.js +1 -1
  153. package/dist/js/treeshaking/commands/inspect.js +147 -32
  154. package/dist/js/treeshaking/commands/start.js +190 -67
  155. package/dist/js/treeshaking/config/default.js +210 -198
  156. package/dist/js/treeshaking/config/index.js +3 -2
  157. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  158. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -70
  159. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  160. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  161. package/dist/js/treeshaking/config/initial/index.js +10 -9
  162. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  163. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  164. package/dist/js/treeshaking/defineConfig.js +60 -13
  165. package/dist/js/treeshaking/exports/server.js +2 -1
  166. package/dist/js/treeshaking/hooks.js +26 -25
  167. package/dist/js/treeshaking/index.js +465 -257
  168. package/dist/js/treeshaking/initialize/index.js +290 -112
  169. package/dist/js/treeshaking/locale/en.js +34 -33
  170. package/dist/js/treeshaking/locale/index.js +5 -5
  171. package/dist/js/treeshaking/locale/zh.js +34 -33
  172. package/dist/js/treeshaking/schema/Schema.js +267 -69
  173. package/dist/js/treeshaking/schema/index.js +165 -121
  174. package/dist/js/treeshaking/schema/legacy.js +323 -256
  175. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  176. package/dist/js/treeshaking/types/config/dev.js +1 -0
  177. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  178. package/dist/js/treeshaking/types/config/html.js +1 -0
  179. package/dist/js/treeshaking/types/config/index.js +0 -1
  180. package/dist/js/treeshaking/types/config/output.js +1 -0
  181. package/dist/js/treeshaking/types/config/performance.js +1 -0
  182. package/dist/js/treeshaking/types/config/security.js +1 -0
  183. package/dist/js/treeshaking/types/config/source.js +1 -0
  184. package/dist/js/treeshaking/types/config/tools.js +1 -0
  185. package/dist/js/treeshaking/types/hooks.js +1 -0
  186. package/dist/js/treeshaking/types/index.js +0 -1
  187. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  188. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  189. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  190. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  191. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  192. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  193. package/dist/js/treeshaking/utils/commands.js +6 -5
  194. package/dist/js/treeshaking/utils/config.js +295 -117
  195. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  196. package/dist/js/treeshaking/utils/createServer.js +252 -67
  197. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  198. package/dist/js/treeshaking/utils/language.js +6 -5
  199. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  200. package/dist/js/treeshaking/utils/restart.js +184 -42
  201. package/dist/js/treeshaking/utils/routes.js +151 -27
  202. package/dist/js/treeshaking/utils/types.js +1 -0
  203. package/dist/types/analyze/index.d.ts +2 -0
  204. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  205. package/dist/types/builder/index.d.ts +2 -2
  206. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  207. package/dist/types/defineConfig.d.ts +1 -0
  208. package/dist/types/index.d.ts +2 -0
  209. package/dist/types/initialize/index.d.ts +2 -0
  210. package/dist/types/types/config/index.d.ts +1 -0
  211. package/dist/types/types/config/output.d.ts +0 -1
  212. package/dist/types/types/config/source.d.ts +1 -0
  213. package/dist/types/types/config/tools.d.ts +2 -0
  214. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  215. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  216. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  217. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  218. package/dist/types/utils/config.d.ts +1 -0
  219. package/dist/types/utils/createServer.d.ts +1 -0
  220. package/dist/types/utils/restart.d.ts +1 -1
  221. package/package.json +9 -8
@@ -1,55 +1,103 @@
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';
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";
6
42
  import { JS_EXTENSIONS } 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 LAYOUT_FILE = "layout";
45
+ const PAGE_FILE = "page";
46
+ const LOADING_FILE = "loading";
47
+ const ERROR_FILE = "error";
48
+ const LOADER_FILE = "loader";
49
+ const conventionNames = [
50
+ LAYOUT_FILE,
51
+ PAGE_FILE,
52
+ LOADING_FILE,
53
+ ERROR_FILE,
54
+ LOADER_FILE
55
+ ];
56
+ const getLoaderPath = (filename) => __async(void 0, null, function* () {
57
+ if (yield hasLoader(filename)) {
58
+ return filename;
17
59
  }
18
- return undefined;
19
- };
20
- const replaceDynamicPath = routePath => {
21
- return routePath.replace(/\[(.*?)\]/g, ':$1');
60
+ return void 0;
61
+ });
62
+ const replaceDynamicPath = (routePath) => {
63
+ return routePath.replace(/\[(.*?)\]/g, ":$1");
22
64
  };
23
65
  const createIndexRoute = (routeInfo, rootDir, filename, entryName) => {
24
- return createRoute(_objectSpread(_objectSpread({}, routeInfo), {}, {
25
- index: true,
26
- children: undefined
27
- }), rootDir, filename, entryName);
66
+ return createRoute(
67
+ __spreadProps(__spreadValues({}, routeInfo), {
68
+ index: true,
69
+ children: void 0
70
+ }),
71
+ rootDir,
72
+ filename,
73
+ entryName
74
+ );
28
75
  };
29
76
  const createRoute = (routeInfo, rootDir, filename, entryName) => {
30
77
  const id = getRouteId(filename, rootDir, entryName);
31
- return _objectSpread(_objectSpread({}, routeInfo), {}, {
78
+ return __spreadProps(__spreadValues({}, routeInfo), {
32
79
  id,
33
- type: 'nested'
80
+ type: "nested"
34
81
  });
35
82
  };
36
- export const walk = async (dirname, rootDir, alias, entryName) => {
37
- if (!(await fs.pathExists(dirname))) {
83
+ const walk = (dirname, rootDir, alias, entryName) => __async(void 0, null, function* () {
84
+ var _a, _b;
85
+ if (!(yield fs.pathExists(dirname))) {
38
86
  return null;
39
87
  }
40
- const isDirectory = (await fs.stat(dirname)).isDirectory();
88
+ const isDirectory = (yield fs.stat(dirname)).isDirectory();
41
89
  if (!isDirectory) {
42
90
  return null;
43
91
  }
44
92
  const relativeDir = path.relative(rootDir, dirname);
45
93
  const pathSegments = relativeDir.split(path.sep);
46
94
  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}`;
95
+ const isRoot = lastSegment === "";
96
+ const isPathlessLayout = lastSegment.startsWith("__");
97
+ const isWithoutLayoutPath = lastSegment.includes(".");
98
+ let routePath = isRoot || isPathlessLayout ? "/" : `${lastSegment}`;
51
99
  if (isWithoutLayoutPath) {
52
- routePath = lastSegment.split('.').join('/');
100
+ routePath = lastSegment.split(".").join("/");
53
101
  }
54
102
  routePath = replaceDynamicPath(routePath);
55
103
  const route = {
@@ -57,17 +105,16 @@ export const walk = async (dirname, rootDir, alias, entryName) => {
57
105
  children: [],
58
106
  isRoot
59
107
  };
60
- const items = await fs.readdir(dirname);
108
+ const items = yield fs.readdir(dirname);
61
109
  for (const item of items) {
62
110
  const itemPath = path.join(dirname, item);
63
111
  const extname = path.extname(item);
64
112
  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);
113
+ const isDirectory2 = (yield fs.stat(itemPath)).isDirectory();
114
+ if (isDirectory2) {
115
+ const childRoute = yield walk(itemPath, rootDir, alias, entryName);
68
116
  if (childRoute) {
69
- var _route$children;
70
- (_route$children = route.children) === null || _route$children === void 0 ? void 0 : _route$children.push(childRoute);
117
+ (_a = route.children) == null ? void 0 : _a.push(childRoute);
71
118
  }
72
119
  }
73
120
  if (extname && (!JS_EXTENSIONS.includes(extname) || !conventionNames.includes(itemWithoutExt))) {
@@ -75,21 +122,20 @@ export const walk = async (dirname, rootDir, alias, entryName) => {
75
122
  }
76
123
  if (itemWithoutExt === LAYOUT_FILE) {
77
124
  route._component = replaceWithAlias(alias.basename, itemPath, alias.name);
78
- route.loader = await getLoaderPath(itemPath);
125
+ route.loader = yield getLoaderPath(itemPath);
79
126
  }
80
127
  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);
128
+ const childRoute = createIndexRoute(
129
+ {
130
+ _component: replaceWithAlias(alias.basename, itemPath, alias.name)
131
+ },
132
+ rootDir,
133
+ itemPath,
134
+ entryName
135
+ );
136
+ childRoute.loader = yield getLoaderPath(itemPath);
137
+ (_b = route.children) == null ? void 0 : _b.push(childRoute);
87
138
  }
88
-
89
- // if (itemWithoutExt === LOADER_FILE) {
90
- // route.loader = replaceWithAlias(alias.basename, itemPath, alias.name);
91
- // }
92
-
93
139
  if (itemWithoutExt === LOADING_FILE) {
94
140
  route.loading = replaceWithAlias(alias.basename, itemPath, alias.name);
95
141
  }
@@ -97,17 +143,17 @@ export const walk = async (dirname, rootDir, alias, entryName) => {
97
143
  route.error = replaceWithAlias(alias.basename, itemPath, alias.name);
98
144
  }
99
145
  }
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
- */
146
+ const finalRoute = createRoute(
147
+ route,
148
+ rootDir,
149
+ path.join(dirname, `${LAYOUT_FILE}.ts`),
150
+ entryName
151
+ );
109
152
  if (isPathlessLayout) {
110
153
  delete finalRoute.path;
111
154
  }
112
155
  return finalRoute;
113
- };
156
+ });
157
+ export {
158
+ walk
159
+ };
@@ -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,81 @@ 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
180
  internalDirectory
136
- }) => {
181
+ }) {
137
182
  const loadings = [];
138
183
  const errors = [];
139
184
  const loaders = [];
140
185
  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');
186
+ const loadersIndexFile = path.join(
187
+ "@_modern_js_internal",
188
+ entryName,
189
+ TEMP_LOADERS_DIR,
190
+ "index.js"
191
+ );
192
+ const loadersMapFile = path.join(
193
+ internalDirectory,
194
+ entryName,
195
+ TEMP_LOADERS_DIR,
196
+ "map.json"
197
+ );
143
198
  const importLazyCode = `
144
199
  import { lazy } from "react";
145
200
  import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
146
201
  `;
147
202
  let rootLayoutCode = ``;
148
- let dataLoaderPath = '';
149
- let componentLoaderPath = '';
203
+ let dataLoaderPath = "";
204
+ let componentLoaderPath = "";
150
205
  if (ssrMode) {
151
- dataLoaderPath = require.resolve(`@modern-js/plugin-data-loader/loader`);
206
+ dataLoaderPath = require.resolve("@modern-js/plugin-data-loader/loader");
152
207
  if (nestedRoutesEntry) {
153
208
  dataLoaderPath = `${dataLoaderPath}?routesDir=${nestedRoutesEntry}&mapFile=${loadersMapFile}!`;
154
209
  }
155
- componentLoaderPath = `${path.join(__dirname, '../builder/loaders/routerLoader')}!`;
210
+ componentLoaderPath = `${path.join(
211
+ __dirname,
212
+ "../builder/loaders/routerLoader"
213
+ )}!`;
156
214
  }
157
- const traverseRouteTree = route => {
215
+ const traverseRouteTree = (route) => {
216
+ var _a;
158
217
  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);
218
+ if ("children" in route && route.children) {
219
+ children = (_a = route == null ? void 0 : route.children) == null ? void 0 : _a.map(traverseRouteTree);
162
220
  }
163
221
  let loading;
164
222
  let error;
165
223
  let loader;
166
- let component = '';
167
- if (route.type === 'nested') {
224
+ let component = "";
225
+ if (route.type === "nested") {
168
226
  if (route.loading) {
169
227
  loadings.push(route.loading);
170
228
  loading = `loading_${loadings.length - 1}`;
@@ -183,17 +241,16 @@ export const fileSystemRoutes = async ({
183
241
  if (route.isRoot) {
184
242
  rootLayoutCode = `import RootLayout from '${route._component}'`;
185
243
  component = `RootLayout`;
186
- } else if (ssrMode === 'string') {
244
+ } else if (ssrMode === "string") {
187
245
  component = `loadable(() => import(/* webpackChunkName: "${route.id}" */ '${componentLoaderPath}${route._component}'))`;
188
246
  } else {
189
- // csr and streaming
190
247
  component = `lazy(() => import(/* webpackChunkName: "${route.id}" */ '${componentLoaderPath}${route._component}'))`;
191
248
  }
192
249
  }
193
250
  } else if (route._component) {
194
251
  component = `loadable(() => import('${route._component}'))`;
195
252
  }
196
- const finalRoute = _objectSpread(_objectSpread({}, route), {}, {
253
+ const finalRoute = __spreadProps(__spreadValues({}, route), {
197
254
  loading,
198
255
  loader,
199
256
  error,
@@ -208,45 +265,62 @@ export const fileSystemRoutes = async ({
208
265
  export const routes = [
209
266
  `;
210
267
  for (const route of routes) {
211
- if ('type' in route) {
268
+ if ("type" in route) {
212
269
  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, '"')},`;
270
+ 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
271
  } else {
215
272
  const component = `loadable(() => import('${route._component}'))`;
216
- const finalRoute = _objectSpread(_objectSpread({}, route), {}, {
273
+ const finalRoute = __spreadProps(__spreadValues({}, route), {
217
274
  component
218
275
  });
219
- routeComponentsCode += `${JSON.stringify(finalRoute, null, 2).replace(/"(loadable[^"]*)"/g, '$1').replace(/"(lazy[^"]*)"/g, '$1')},`;
276
+ routeComponentsCode += `${JSON.stringify(finalRoute, null, 2).replace(/"(loadable[^"]*)"/g, "$1").replace(/"(lazy[^"]*)"/g, "$1")},`;
220
277
  }
221
278
  }
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 = '';
279
+ routeComponentsCode += `
280
+ ];`;
281
+ const importLoadingCode = loadings.map((loading, index2) => {
282
+ return `import loading_${index2} from '${loading}';
283
+ `;
284
+ }).join("");
285
+ const importErrorComponentsCode = errors.map((error, index2) => {
286
+ return `import error_${index2} from '${error}';
287
+ `;
288
+ }).join("");
289
+ let importLoadersCode = "";
230
290
  if (loaders.length > 0) {
231
291
  importLoadersCode = `
232
- import { ${loaders.map((loader, index) => `loader_${index}`)} } from "${dataLoaderPath}${loadersIndexFile}"
292
+ import { ${loaders.map(
293
+ (loader, index2) => `loader_${index2}`
294
+ )} } from "${slash(dataLoaderPath)}${slash(loadersIndexFile)}"
233
295
  `;
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}'
296
+ const loaderEntryCode = loaders.map((loader, index2) => {
297
+ return `export * from './loader_${index2}.js';`;
298
+ }).join("\n");
299
+ const loaderEntryFile = path.join(
300
+ internalDirectory,
301
+ entryName,
302
+ TEMP_LOADERS_DIR,
303
+ "entry.js"
304
+ );
305
+ yield fs.ensureFile(loaderEntryFile);
306
+ yield fs.writeFile(loaderEntryFile, loaderEntryCode);
307
+ yield fs.writeJSON(loadersMapFile, loadersMap);
308
+ yield Promise.all(
309
+ loaders.map((loader, index2) => __async(void 0, null, function* () {
310
+ const name = `loader_${index2}`;
311
+ const filename = path.join(
312
+ internalDirectory,
313
+ entryName,
314
+ TEMP_LOADERS_DIR,
315
+ `${name}.js`
316
+ );
317
+ const code = `
318
+ export { loader as ${name} } from '${slash(loader)}'
246
319
  `;
247
- await fs.ensureFile(filename);
248
- await fs.writeFile(filename, code);
249
- }));
320
+ yield fs.ensureFile(filename);
321
+ yield fs.writeFile(filename, code);
322
+ }))
323
+ );
250
324
  }
251
325
  return `
252
326
  ${importLazyCode}
@@ -256,4 +330,11 @@ export const fileSystemRoutes = async ({
256
330
  ${importLoadersCode}
257
331
  ${routeComponentsCode}
258
332
  `;
259
- };
333
+ });
334
+ export {
335
+ fileSystemRoutes,
336
+ html,
337
+ index,
338
+ renderFunction,
339
+ routesForServer
340
+ };