@modern-js/app-tools 2.0.0-beta.2 → 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 (231) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/bin/modern.js +10 -1
  3. package/dist/js/modern/analyze/constants.js +38 -16
  4. package/dist/js/modern/analyze/generateCode.js +271 -211
  5. package/dist/js/modern/analyze/getBundleEntry.js +31 -32
  6. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  8. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  9. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  10. package/dist/js/modern/analyze/getFileSystemEntry.js +43 -22
  11. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  12. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  13. package/dist/js/modern/analyze/index.js +193 -159
  14. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  15. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  16. package/dist/js/modern/analyze/nestedRoutes.js +110 -53
  17. package/dist/js/modern/analyze/templates.js +190 -77
  18. package/dist/js/modern/analyze/utils.js +98 -51
  19. package/dist/js/modern/builder/builderPlugins/compatModern.js +124 -107
  20. package/dist/js/modern/builder/index.js +123 -86
  21. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  22. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  23. package/dist/js/modern/builder/share.js +22 -20
  24. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  25. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  26. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +98 -84
  27. package/dist/js/modern/commands/build.js +67 -42
  28. package/dist/js/modern/commands/deploy.js +27 -4
  29. package/dist/js/modern/commands/dev.js +93 -47
  30. package/dist/js/modern/commands/index.js +1 -1
  31. package/dist/js/modern/commands/inspect.js +30 -5
  32. package/dist/js/modern/commands/start.js +37 -16
  33. package/dist/js/modern/config/default.js +103 -114
  34. package/dist/js/modern/config/index.js +8 -2
  35. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  36. package/dist/js/modern/config/initial/createOutputConfig.js +11 -9
  37. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  38. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  39. package/dist/js/modern/config/initial/index.js +9 -4
  40. package/dist/js/modern/config/initial/inits.js +109 -73
  41. package/dist/js/modern/config/initial/transformNormalizedConfig.js +6 -3
  42. package/dist/js/modern/defineConfig.js +26 -11
  43. package/dist/js/modern/exports/server.js +4 -1
  44. package/dist/js/modern/hooks.js +10 -3
  45. package/dist/js/modern/index.js +140 -89
  46. package/dist/js/modern/initialize/index.js +98 -51
  47. package/dist/js/modern/locale/en.js +20 -21
  48. package/dist/js/modern/locale/index.js +6 -6
  49. package/dist/js/modern/locale/zh.js +21 -22
  50. package/dist/js/modern/schema/Schema.js +6 -5
  51. package/dist/js/modern/schema/index.js +51 -100
  52. package/dist/js/modern/schema/legacy.js +96 -231
  53. package/dist/js/modern/types/config/index.js +0 -1
  54. package/dist/js/modern/types/index.js +0 -1
  55. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  56. package/dist/js/modern/utils/commands.js +5 -2
  57. package/dist/js/modern/utils/config.js +102 -41
  58. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  59. package/dist/js/modern/utils/createServer.js +63 -17
  60. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  61. package/dist/js/modern/utils/language.js +6 -3
  62. package/dist/js/modern/utils/printInstructions.js +27 -8
  63. package/dist/js/modern/utils/restart.js +43 -16
  64. package/dist/js/modern/utils/routes.js +29 -12
  65. package/dist/js/node/analyze/constants.js +54 -35
  66. package/dist/js/node/analyze/generateCode.js +290 -228
  67. package/dist/js/node/analyze/getBundleEntry.js +55 -44
  68. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  69. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  70. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  71. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  72. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  73. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  74. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  75. package/dist/js/node/analyze/index.js +240 -174
  76. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  77. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  78. package/dist/js/node/analyze/nestedRoutes.js +140 -67
  79. package/dist/js/node/analyze/templates.js +211 -84
  80. package/dist/js/node/analyze/utils.js +123 -62
  81. package/dist/js/node/builder/builderPlugins/compatModern.js +152 -120
  82. package/dist/js/node/builder/index.js +151 -95
  83. package/dist/js/node/builder/loaders/routerLoader.js +36 -0
  84. package/dist/js/node/builder/loaders/serverModuleLoader.js +26 -0
  85. package/dist/js/node/builder/share.js +45 -25
  86. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  87. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  88. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +116 -90
  89. package/dist/js/node/commands/build.js +89 -52
  90. package/dist/js/node/commands/deploy.js +45 -10
  91. package/dist/js/node/commands/dev.js +115 -61
  92. package/dist/js/node/commands/index.js +19 -38
  93. package/dist/js/node/commands/inspect.js +48 -11
  94. package/dist/js/node/commands/start.js +65 -27
  95. package/dist/js/node/config/default.js +119 -118
  96. package/dist/js/node/config/index.js +25 -29
  97. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  98. package/dist/js/node/config/initial/createOutputConfig.js +28 -13
  99. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  100. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  101. package/dist/js/node/config/initial/index.js +28 -17
  102. package/dist/js/node/config/initial/inits.js +126 -81
  103. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  104. package/dist/js/node/defineConfig.js +43 -17
  105. package/dist/js/node/exports/server.js +21 -10
  106. package/dist/js/node/hooks.js +44 -29
  107. package/dist/js/node/index.js +190 -130
  108. package/dist/js/node/initialize/index.js +116 -61
  109. package/dist/js/node/locale/en.js +36 -25
  110. package/dist/js/node/locale/index.js +27 -15
  111. package/dist/js/node/locale/zh.js +37 -26
  112. package/dist/js/node/schema/Schema.js +23 -10
  113. package/dist/js/node/schema/index.js +77 -114
  114. package/dist/js/node/schema/legacy.js +117 -240
  115. package/dist/js/node/types/config/index.js +17 -16
  116. package/dist/js/node/types/index.js +19 -38
  117. package/dist/js/node/types/legacyConfig/output.js +0 -5
  118. package/dist/js/node/utils/commands.js +21 -6
  119. package/dist/js/node/utils/config.js +120 -51
  120. package/dist/js/node/utils/createFileWatcher.js +104 -60
  121. package/dist/js/node/utils/createServer.js +86 -25
  122. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  123. package/dist/js/node/utils/language.js +24 -8
  124. package/dist/js/node/utils/printInstructions.js +47 -16
  125. package/dist/js/node/utils/restart.js +61 -21
  126. package/dist/js/node/utils/routes.js +53 -18
  127. package/dist/js/treeshaking/analyze/constants.js +28 -16
  128. package/dist/js/treeshaking/analyze/generateCode.js +604 -355
  129. package/dist/js/treeshaking/analyze/getBundleEntry.js +52 -63
  130. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  131. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  132. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  133. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  134. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  135. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  136. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -146
  137. package/dist/js/treeshaking/analyze/index.js +558 -303
  138. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  139. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  140. package/dist/js/treeshaking/analyze/nestedRoutes.js +414 -160
  141. package/dist/js/treeshaking/analyze/templates.js +432 -161
  142. package/dist/js/treeshaking/analyze/utils.js +361 -80
  143. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +281 -195
  144. package/dist/js/treeshaking/builder/index.js +371 -165
  145. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  146. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  147. package/dist/js/treeshaking/builder/share.js +41 -44
  148. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  149. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  150. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +332 -112
  151. package/dist/js/treeshaking/commands/build.js +286 -88
  152. package/dist/js/treeshaking/commands/deploy.js +153 -25
  153. package/dist/js/treeshaking/commands/dev.js +318 -132
  154. package/dist/js/treeshaking/commands/index.js +1 -1
  155. package/dist/js/treeshaking/commands/inspect.js +147 -32
  156. package/dist/js/treeshaking/commands/start.js +190 -68
  157. package/dist/js/treeshaking/config/default.js +210 -199
  158. package/dist/js/treeshaking/config/index.js +3 -2
  159. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  160. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -67
  161. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  162. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  163. package/dist/js/treeshaking/config/initial/index.js +10 -9
  164. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  165. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  166. package/dist/js/treeshaking/defineConfig.js +60 -13
  167. package/dist/js/treeshaking/exports/server.js +2 -1
  168. package/dist/js/treeshaking/hooks.js +26 -25
  169. package/dist/js/treeshaking/index.js +465 -257
  170. package/dist/js/treeshaking/initialize/index.js +290 -112
  171. package/dist/js/treeshaking/locale/en.js +34 -33
  172. package/dist/js/treeshaking/locale/index.js +5 -5
  173. package/dist/js/treeshaking/locale/zh.js +34 -33
  174. package/dist/js/treeshaking/schema/Schema.js +267 -69
  175. package/dist/js/treeshaking/schema/index.js +165 -121
  176. package/dist/js/treeshaking/schema/legacy.js +323 -256
  177. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  178. package/dist/js/treeshaking/types/config/dev.js +1 -0
  179. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  180. package/dist/js/treeshaking/types/config/html.js +1 -0
  181. package/dist/js/treeshaking/types/config/index.js +0 -1
  182. package/dist/js/treeshaking/types/config/output.js +1 -0
  183. package/dist/js/treeshaking/types/config/performance.js +1 -0
  184. package/dist/js/treeshaking/types/config/security.js +1 -0
  185. package/dist/js/treeshaking/types/config/source.js +1 -0
  186. package/dist/js/treeshaking/types/config/tools.js +1 -0
  187. package/dist/js/treeshaking/types/hooks.js +1 -0
  188. package/dist/js/treeshaking/types/index.js +0 -1
  189. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  190. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  191. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  192. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  193. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  194. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  195. package/dist/js/treeshaking/utils/commands.js +6 -5
  196. package/dist/js/treeshaking/utils/config.js +295 -117
  197. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  198. package/dist/js/treeshaking/utils/createServer.js +252 -67
  199. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  200. package/dist/js/treeshaking/utils/language.js +6 -5
  201. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  202. package/dist/js/treeshaking/utils/restart.js +184 -42
  203. package/dist/js/treeshaking/utils/routes.js +151 -27
  204. package/dist/js/treeshaking/utils/types.js +1 -0
  205. package/dist/types/analyze/constants.d.ts +2 -0
  206. package/dist/types/analyze/index.d.ts +2 -0
  207. package/dist/types/analyze/templates.d.ts +8 -7
  208. package/dist/types/analyze/utils.d.ts +9 -1
  209. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  210. package/dist/types/builder/index.d.ts +2 -2
  211. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  212. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  213. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  214. package/dist/types/defineConfig.d.ts +1 -0
  215. package/dist/types/index.d.ts +2 -0
  216. package/dist/types/initialize/index.d.ts +2 -0
  217. package/dist/types/types/config/index.d.ts +1 -0
  218. package/dist/types/types/config/output.d.ts +0 -1
  219. package/dist/types/types/config/source.d.ts +1 -0
  220. package/dist/types/types/config/tools.d.ts +10 -1
  221. package/dist/types/types/hooks.d.ts +2 -1
  222. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  223. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  224. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  225. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  226. package/dist/types/utils/config.d.ts +1 -0
  227. package/dist/types/utils/createFileWatcher.d.ts +2 -1
  228. package/dist/types/utils/createServer.d.ts +1 -0
  229. package/dist/types/utils/restart.d.ts +1 -1
  230. package/lib/types.d.ts +1 -1
  231. package/package.json +27 -23
@@ -1,75 +1,115 @@
1
- import path from 'path';
2
- import { fs, findExists, MAIN_ENTRY_NAME } from '@modern-js/utils';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import path from "path";
22
+ import { fs, findExists, MAIN_ENTRY_NAME } from "@modern-js/utils";
3
23
  import { HTML_PARTIALS_EXTENSIONS, HTML_PARTIALS_FOLDER } from "./constants";
4
24
  import * as templates from "./templates";
5
- var PartialPosition;
6
- (function (PartialPosition) {
7
- PartialPosition["TOP"] = "top";
8
- PartialPosition["HEAD"] = "head";
9
- PartialPosition["BODY"] = "body";
10
- PartialPosition["BOTTOM"] = "bottom";
11
- PartialPosition["INDEX"] = "index";
12
- })(PartialPosition || (PartialPosition = {}));
25
+ var PartialPosition = /* @__PURE__ */ ((PartialPosition2) => {
26
+ PartialPosition2["TOP"] = "top";
27
+ PartialPosition2["HEAD"] = "head";
28
+ PartialPosition2["BODY"] = "body";
29
+ PartialPosition2["BOTTOM"] = "bottom";
30
+ PartialPosition2["INDEX"] = "index";
31
+ return PartialPosition2;
32
+ })(PartialPosition || {});
13
33
  const findPartials = (dir, entryName, position) => {
14
34
  if (fs.existsSync(dir)) {
15
- const base = findExists(HTML_PARTIALS_EXTENSIONS.map(ext => path.resolve(dir, `${position}${ext}`)));
16
- const file = entryName ? findExists(HTML_PARTIALS_EXTENSIONS.map(ext => path.resolve(dir, entryName, `${position}${ext}`))) || base : base;
17
- return file ? {
18
- file,
19
- content: fs.readFileSync(file, 'utf8')
20
- } : null;
35
+ const base = findExists(
36
+ HTML_PARTIALS_EXTENSIONS.map(
37
+ (ext) => path.resolve(dir, `${position}${ext}`)
38
+ )
39
+ );
40
+ const file = entryName ? findExists(
41
+ HTML_PARTIALS_EXTENSIONS.map(
42
+ (ext) => path.resolve(dir, entryName, `${position}${ext}`)
43
+ )
44
+ ) || base : base;
45
+ return file ? { file, content: fs.readFileSync(file, "utf8") } : null;
21
46
  }
22
47
  return null;
23
48
  };
24
-
25
- // generate html template for
26
- export const getHtmlTemplate = async (entrypoints, api, {
49
+ const getHtmlTemplate = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (entrypoints, api, {
27
50
  appContext,
28
51
  config
29
- }) => {
30
- const {
31
- appDirectory,
32
- internalDirectory
33
- } = appContext;
52
+ }) {
53
+ const { appDirectory, internalDirectory } = appContext;
34
54
  const {
35
- source: {
36
- configDir
37
- }
55
+ source: { configDir }
38
56
  } = config;
39
- const htmlDir = path.resolve(appDirectory, configDir || '', HTML_PARTIALS_FOLDER);
57
+ const htmlDir = path.resolve(
58
+ appDirectory,
59
+ configDir || "",
60
+ HTML_PARTIALS_FOLDER
61
+ );
40
62
  const htmlTemplates = {};
41
63
  for (const entrypoint of entrypoints) {
42
- const {
43
- entryName
44
- } = entrypoint;
45
- const name = entrypoints.length === 1 && entryName === MAIN_ENTRY_NAME ? '' : entryName;
46
- const customIndexTemplate = findPartials(htmlDir, name, PartialPosition.INDEX);
64
+ const { entryName } = entrypoint;
65
+ const name = entrypoints.length === 1 && entryName === MAIN_ENTRY_NAME ? "" : entryName;
66
+ const customIndexTemplate = findPartials(
67
+ htmlDir,
68
+ name,
69
+ "index" /* INDEX */
70
+ );
47
71
  if (customIndexTemplate) {
48
72
  htmlTemplates[entryName] = customIndexTemplate.file;
49
73
  } else {
50
74
  const hookRunners = api.useHookRunners();
51
- const {
52
- partials
53
- } = await hookRunners.htmlPartials({
75
+ const { partials } = yield hookRunners.htmlPartials({
54
76
  entrypoint,
55
- partials: [PartialPosition.TOP, PartialPosition.HEAD, PartialPosition.BODY].reduce((previous, position) => {
56
- const found = findPartials(htmlDir, name, position);
57
- previous[position] = found ? [found.content] : [];
58
- return previous;
59
- }, {
60
- top: [],
61
- head: [],
62
- body: []
63
- })
77
+ partials: [
78
+ "top" /* TOP */,
79
+ "head" /* HEAD */,
80
+ "body" /* BODY */
81
+ ].reduce(
82
+ (previous, position) => {
83
+ const found = findPartials(htmlDir, name, position);
84
+ previous[position] = found ? [found.content] : [];
85
+ return previous;
86
+ },
87
+ {
88
+ top: [],
89
+ head: [],
90
+ body: []
91
+ }
92
+ )
64
93
  });
65
- const templatePath = path.resolve(internalDirectory, entryName, 'index.html');
66
- fs.outputFileSync(templatePath, templates.html(partials), 'utf8');
94
+ const templatePath = path.resolve(
95
+ internalDirectory,
96
+ entryName,
97
+ "index.html"
98
+ );
99
+ fs.outputFileSync(templatePath, templates.html(partials), "utf8");
67
100
  htmlTemplates[entryName] = templatePath;
68
- const bottomTemplate = findPartials(htmlDir, name, PartialPosition.BOTTOM);
101
+ const bottomTemplate = findPartials(
102
+ htmlDir,
103
+ name,
104
+ "bottom" /* BOTTOM */
105
+ );
69
106
  if (bottomTemplate) {
70
107
  htmlTemplates[`__${entryName}-bottom__`] = bottomTemplate.content;
71
108
  }
72
109
  }
73
110
  }
74
111
  return htmlTemplates;
75
- };
112
+ });
113
+ export {
114
+ getHtmlTemplate
115
+ };
@@ -1,179 +1,175 @@
1
- const _excluded = ["path"],
2
- _excluded2 = ["path"];
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
- 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; }
6
- 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; }
7
- 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; }
8
- import path from 'path';
9
- import fs from 'fs';
10
- import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash } 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 __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import path from "path";
33
+ import fs from "fs";
34
+ import {
35
+ urlJoin,
36
+ isPlainObject,
37
+ removeLeadingSlash,
38
+ getEntryOptions,
39
+ SERVER_BUNDLE_DIRECTORY,
40
+ MAIN_ENTRY_NAME,
41
+ removeTailSlash
42
+ } from "@modern-js/utils";
11
43
  import { walkDirectory } from "./utils";
12
-
13
- /**
14
- * Add base url for each server route.
15
- * @param baseUrl - Base url from server.baseUrl
16
- * @param routes - Server routes.
17
- * @returns Server routes with baseUrl prefixed.
18
- */
19
44
  const applyBaseUrl = (baseUrl, routes) => {
20
45
  if (baseUrl) {
21
46
  if (Array.isArray(baseUrl)) {
22
- return baseUrl.reduce((previous, current) => [...previous, ...applyBaseUrl(current, routes)], []);
47
+ return baseUrl.reduce(
48
+ (previous, current) => [...previous, ...applyBaseUrl(current, routes)],
49
+ []
50
+ );
23
51
  } else {
24
- return routes.map(route => {
52
+ return routes.map((route) => {
25
53
  const urlPath = urlJoin(baseUrl, route.urlPath);
26
- return _objectSpread(_objectSpread({}, route), {}, {
27
- urlPath: urlPath === '/' ? urlPath : removeTailSlash(urlPath)
54
+ return __spreadProps(__spreadValues({}, route), {
55
+ urlPath: urlPath === "/" ? urlPath : removeTailSlash(urlPath)
28
56
  });
29
57
  });
30
58
  }
31
59
  }
32
60
  return routes;
33
61
  };
34
-
35
- /**
36
- *
37
- * @param original - Original entrypoint route info.
38
- * @param routeOptions - Custom entrypoint route config from server.routes.
39
- * @returns
40
- */
41
62
  const applyRouteOptions = (original, routeOptions) => {
42
- const {
43
- route,
44
- disableSpa
45
- } = routeOptions;
63
+ const { route, disableSpa } = routeOptions;
46
64
  original.isSPA = !disableSpa;
47
-
48
- // set entryPath as dir
49
65
  !original.isSPA && (original.entryPath = path.dirname(original.entryPath));
50
66
  let routes;
51
67
  if (route) {
52
68
  if (Array.isArray(route)) {
53
- routes = route.map(url => {
69
+ routes = route.map((url) => {
54
70
  if (isPlainObject(url)) {
55
- const _ref = url,
56
- {
57
- path: urlPath
58
- } = _ref,
59
- other = _objectWithoutProperties(_ref, _excluded);
60
- return _objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
71
+ const _a2 = url, { path: urlPath } = _a2, other = __objRest(_a2, ["path"]);
72
+ return __spreadProps(__spreadValues(__spreadValues({}, original), other), {
61
73
  urlPath
62
74
  });
63
75
  } else {
64
- return _objectSpread(_objectSpread({}, original), {}, {
76
+ return __spreadProps(__spreadValues({}, original), {
65
77
  urlPath: url
66
78
  });
67
79
  }
68
80
  });
69
81
  } else if (isPlainObject(route)) {
70
- const _ref2 = route,
71
- {
72
- path: urlPath
73
- } = _ref2,
74
- other = _objectWithoutProperties(_ref2, _excluded2);
75
- routes = [_objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
76
- urlPath
77
- })];
82
+ const _a = route, { path: urlPath } = _a, other = __objRest(_a, ["path"]);
83
+ routes = [
84
+ __spreadProps(__spreadValues(__spreadValues({}, original), other), {
85
+ urlPath
86
+ })
87
+ ];
78
88
  } else {
79
- routes = [_objectSpread(_objectSpread({}, original), {}, {
80
- urlPath: route
81
- })];
89
+ routes = [
90
+ __spreadProps(__spreadValues({}, original), {
91
+ urlPath: route
92
+ })
93
+ ];
82
94
  }
83
95
  } else {
84
96
  routes = [original];
85
97
  }
86
98
  return routes;
87
99
  };
88
-
89
- /**
90
- * Collect routes from entrypoints.
91
- * @param entrypoints - Bundle entrypoints.
92
- * @param config - Normalized user config.
93
- * @returns entrypoint Routes
94
- */
95
100
  const collectHtmlRoutes = (entrypoints, appContext, config) => {
96
101
  const {
97
- html: {
98
- disableHtmlFolder
99
- },
100
- output: {
101
- distPath: {
102
- html: htmlPath
103
- } = {}
104
- },
105
- server: {
106
- baseUrl,
107
- routes,
108
- ssr,
109
- ssrByEntries
110
- }
102
+ html: { disableHtmlFolder },
103
+ output: { distPath: { html: htmlPath } = {} },
104
+ server: { baseUrl, routes, ssr, ssrByEntries }
111
105
  } = config;
112
- const {
113
- packageName
114
- } = appContext;
115
- let htmlRoutes = entrypoints.reduce((previous, {
116
- entryName
117
- }) => {
118
- const entryOptions = getEntryOptions(entryName, ssr, ssrByEntries, packageName);
119
- const isSSR = Boolean(entryOptions);
120
- const {
121
- resHeaders
122
- } = (routes === null || routes === void 0 ? void 0 : routes[entryName]) || {};
123
- let route = {
124
- urlPath: `/${entryName === MAIN_ENTRY_NAME ? '' : entryName}`,
125
- entryName,
126
- entryPath: removeLeadingSlash(path.posix.normalize(`${htmlPath}/${entryName}${disableHtmlFolder ? '.html' : '/index.html'}`)),
127
- isSPA: true,
128
- isSSR,
129
- responseHeaders: resHeaders,
130
- // FIXME: remove the config.enableModernMode
131
- // enableModernMode: Boolean(enableModernMode),
132
- bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : undefined
133
- };
134
- if (routes !== null && routes !== void 0 && routes.hasOwnProperty(entryName)) {
135
- const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : {
136
- route: routes[entryName]
106
+ const { packageName } = appContext;
107
+ let htmlRoutes = entrypoints.reduce(
108
+ (previous, { entryName }) => {
109
+ const entryOptions = getEntryOptions(
110
+ entryName,
111
+ ssr,
112
+ ssrByEntries,
113
+ packageName
114
+ );
115
+ const isSSR = Boolean(entryOptions);
116
+ const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
117
+ let route = {
118
+ urlPath: `/${entryName === MAIN_ENTRY_NAME ? "" : entryName}`,
119
+ entryName,
120
+ entryPath: removeLeadingSlash(
121
+ path.posix.normalize(
122
+ `${htmlPath}/${entryName}${disableHtmlFolder ? ".html" : "/index.html"}`
123
+ )
124
+ ),
125
+ isSPA: true,
126
+ isSSR,
127
+ responseHeaders: resHeaders,
128
+ bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
137
129
  };
138
- route = applyRouteOptions(route, routeOptions);
139
- }
140
- return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
141
- }, []);
130
+ if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
131
+ const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : { route: routes[entryName] };
132
+ route = applyRouteOptions(route, routeOptions);
133
+ }
134
+ return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
135
+ },
136
+ []
137
+ );
142
138
  htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
143
139
  return htmlRoutes;
144
140
  };
145
-
146
- /**
147
- * Collect static public file routes from config/public folder.
148
- * @param appContext - App context info.
149
- * @param config - normalized user config.
150
- * @returns Static public file routes.
151
- */
152
141
  const collectStaticRoutes = (appContext, config) => {
142
+ const { appDirectory } = appContext;
153
143
  const {
154
- appDirectory
155
- } = appContext;
156
- const {
157
- source: {
158
- configDir
159
- },
160
- server: {
161
- publicRoutes = {}
162
- }
144
+ source: { configDir },
145
+ server: { publicRoutes = {} }
163
146
  } = config;
164
- const publicFolder = path.resolve(appDirectory, configDir || '', 'public');
165
- return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(filePath => {
166
- const urlPath = `${urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length))}`;
147
+ const publicFolder = path.resolve(appDirectory, configDir || "", "public");
148
+ return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map((filePath) => {
149
+ const urlPath = `${urlJoin(
150
+ toPosix(filePath).slice(toPosix(publicFolder).length)
151
+ )}`;
167
152
  return {
168
153
  urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
169
154
  isSPA: true,
170
155
  isSSR: false,
171
- entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ''), filePath))
156
+ entryPath: toPosix(
157
+ path.relative(
158
+ path.resolve(appDirectory, configDir || ""),
159
+ filePath
160
+ )
161
+ )
172
162
  };
173
163
  }) : [];
174
164
  };
175
- export const getServerRoutes = (entrypoints, {
165
+ const getServerRoutes = (entrypoints, {
176
166
  appContext,
177
167
  config
178
- }) => [...collectHtmlRoutes(entrypoints, appContext, config), ...collectStaticRoutes(appContext, config)];
179
- const toPosix = pathStr => pathStr.split(path.sep).join(path.posix.sep);
168
+ }) => [
169
+ ...collectHtmlRoutes(entrypoints, appContext, config),
170
+ ...collectStaticRoutes(appContext, config)
171
+ ];
172
+ const toPosix = (pathStr) => pathStr.split(path.sep).join(path.posix.sep);
173
+ export {
174
+ getServerRoutes
175
+ };