@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,158 +1,222 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
- var _excluded = ["path"],
5
- _excluded2 = ["path"];
6
- import path from 'path';
7
- import fs from 'fs';
8
- import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash } from '@modern-js/utils';
9
- import { walkDirectory } from "./utils";
10
-
11
- /**
12
- * Add base url for each server route.
13
- * @param baseUrl - Base url from server.baseUrl
14
- * @param routes - Server routes.
15
- * @returns Server routes with baseUrl prefixed.
16
- */
17
- var applyBaseUrl = function applyBaseUrl(baseUrl, routes) {
18
- if (baseUrl) {
19
- if (Array.isArray(baseUrl)) {
20
- return baseUrl.reduce(function (previous, current) {
21
- return [].concat(_toConsumableArray(previous), _toConsumableArray(applyBaseUrl(current, routes)));
22
- }, []);
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
+ }
9
+ function _defineProperty(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _iterableToArray(iter) {
23
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
24
+ }
25
+ function _nonIterableSpread() {
26
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
27
+ }
28
+ function _objectSpread(target) {
29
+ for(var i = 1; i < arguments.length; i++){
30
+ var source = arguments[i] != null ? arguments[i] : {};
31
+ var ownKeys = Object.keys(source);
32
+ if (typeof Object.getOwnPropertySymbols === "function") {
33
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
34
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
35
+ }));
36
+ }
37
+ ownKeys.forEach(function(key) {
38
+ _defineProperty(target, key, source[key]);
39
+ });
40
+ }
41
+ return target;
42
+ }
43
+ function ownKeys(object, enumerableOnly) {
44
+ var keys = Object.keys(object);
45
+ if (Object.getOwnPropertySymbols) {
46
+ var symbols = Object.getOwnPropertySymbols(object);
47
+ if (enumerableOnly) {
48
+ symbols = symbols.filter(function(sym) {
49
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
50
+ });
51
+ }
52
+ keys.push.apply(keys, symbols);
53
+ }
54
+ return keys;
55
+ }
56
+ function _objectSpreadProps(target, source) {
57
+ source = source != null ? source : {};
58
+ if (Object.getOwnPropertyDescriptors) {
59
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
23
60
  } else {
24
- return routes.map(function (route) {
25
- var urlPath = urlJoin(baseUrl, route.urlPath);
26
- return _objectSpread(_objectSpread({}, route), {}, {
27
- urlPath: urlPath === '/' ? urlPath : removeTailSlash(urlPath)
61
+ ownKeys(Object(source)).forEach(function(key) {
62
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
28
63
  });
29
- });
30
64
  }
31
- }
32
- return routes;
65
+ return target;
66
+ }
67
+ function _objectWithoutProperties(source, excluded) {
68
+ if (source == null) return {};
69
+ var target = _objectWithoutPropertiesLoose(source, excluded);
70
+ var key, i;
71
+ if (Object.getOwnPropertySymbols) {
72
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
73
+ for(i = 0; i < sourceSymbolKeys.length; i++){
74
+ key = sourceSymbolKeys[i];
75
+ if (excluded.indexOf(key) >= 0) continue;
76
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
77
+ target[key] = source[key];
78
+ }
79
+ }
80
+ return target;
81
+ }
82
+ function _objectWithoutPropertiesLoose(source, excluded) {
83
+ if (source == null) return {};
84
+ var target = {};
85
+ var sourceKeys = Object.keys(source);
86
+ var key, i;
87
+ for(i = 0; i < sourceKeys.length; i++){
88
+ key = sourceKeys[i];
89
+ if (excluded.indexOf(key) >= 0) continue;
90
+ target[key] = source[key];
91
+ }
92
+ return target;
93
+ }
94
+ function _toConsumableArray(arr) {
95
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
96
+ }
97
+ function _unsupportedIterableToArray(o, minLen) {
98
+ if (!o) return;
99
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
100
+ var n = Object.prototype.toString.call(o).slice(8, -1);
101
+ if (n === "Object" && o.constructor) n = o.constructor.name;
102
+ if (n === "Map" || n === "Set") return Array.from(n);
103
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
104
+ }
105
+ import path from "path";
106
+ import fs from "fs";
107
+ import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash } from "@modern-js/utils";
108
+ import { walkDirectory } from "./utils";
109
+ var applyBaseUrl = function(baseUrl, routes) {
110
+ if (baseUrl) {
111
+ if (Array.isArray(baseUrl)) {
112
+ return baseUrl.reduce(function(previous, current) {
113
+ return _toConsumableArray(previous).concat(_toConsumableArray(applyBaseUrl(current, routes)));
114
+ }, []);
115
+ } else {
116
+ return routes.map(function(route) {
117
+ var urlPath = urlJoin(baseUrl, route.urlPath);
118
+ return _objectSpreadProps(_objectSpread({}, route), {
119
+ urlPath: urlPath === "/" ? urlPath : removeTailSlash(urlPath)
120
+ });
121
+ });
122
+ }
123
+ }
124
+ return routes;
33
125
  };
34
-
35
- /**
36
- *
37
- * @param original - Original entrypoint route info.
38
- * @param routeOptions - Custom entrypoint route config from server.routes.
39
- * @returns
40
- */
41
- var applyRouteOptions = function applyRouteOptions(original, routeOptions) {
42
- var route = routeOptions.route,
43
- disableSpa = routeOptions.disableSpa;
44
- original.isSPA = !disableSpa;
45
-
46
- // set entryPath as dir
47
- !original.isSPA && (original.entryPath = path.dirname(original.entryPath));
48
- var routes;
49
- if (route) {
50
- if (Array.isArray(route)) {
51
- routes = route.map(function (url) {
52
- if (isPlainObject(url)) {
53
- var _ref = url,
54
- urlPath = _ref.path,
55
- other = _objectWithoutProperties(_ref, _excluded);
56
- return _objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
57
- urlPath: urlPath
58
- });
126
+ var applyRouteOptions = function(original, routeOptions) {
127
+ var route = routeOptions.route, disableSpa = routeOptions.disableSpa;
128
+ original.isSPA = !disableSpa;
129
+ !original.isSPA && (original.entryPath = path.dirname(original.entryPath));
130
+ var routes;
131
+ if (route) {
132
+ if (Array.isArray(route)) {
133
+ var _tmp;
134
+ _tmp = route.map(function(url) {
135
+ if (isPlainObject(url)) {
136
+ var urlPath = url.path, other = _objectWithoutProperties(url, [
137
+ "path"
138
+ ]);
139
+ return _objectSpreadProps(_objectSpread({}, original, other), {
140
+ urlPath: urlPath
141
+ });
142
+ } else {
143
+ return _objectSpreadProps(_objectSpread({}, original), {
144
+ urlPath: url
145
+ });
146
+ }
147
+ }), routes = _tmp, _tmp;
148
+ } else if (isPlainObject(route)) {
149
+ var urlPath = route.path, other = _objectWithoutProperties(route, [
150
+ "path"
151
+ ]);
152
+ routes = [
153
+ _objectSpreadProps(_objectSpread({}, original, other), {
154
+ urlPath: urlPath
155
+ })
156
+ ];
59
157
  } else {
60
- return _objectSpread(_objectSpread({}, original), {}, {
61
- urlPath: url
62
- });
158
+ routes = [
159
+ _objectSpreadProps(_objectSpread({}, original), {
160
+ urlPath: route
161
+ })
162
+ ];
63
163
  }
64
- });
65
- } else if (isPlainObject(route)) {
66
- var _ref2 = route,
67
- urlPath = _ref2.path,
68
- other = _objectWithoutProperties(_ref2, _excluded2);
69
- routes = [_objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
70
- urlPath: urlPath
71
- })];
72
164
  } else {
73
- routes = [_objectSpread(_objectSpread({}, original), {}, {
74
- urlPath: route
75
- })];
165
+ routes = [
166
+ original
167
+ ];
76
168
  }
77
- } else {
78
- routes = [original];
79
- }
80
- return routes;
169
+ return routes;
81
170
  };
82
-
83
- /**
84
- * Collect routes from entrypoints.
85
- * @param entrypoints - Bundle entrypoints.
86
- * @param config - Normalized user config.
87
- * @returns entrypoint Routes
88
- */
89
- var collectHtmlRoutes = function collectHtmlRoutes(entrypoints, appContext, config) {
90
- var disableHtmlFolder = config.html.disableHtmlFolder,
91
- _config$output$distPa = config.output.distPath;
92
- _config$output$distPa = _config$output$distPa === void 0 ? {} : _config$output$distPa;
93
- var htmlPath = _config$output$distPa.html,
94
- _config$server = config.server,
95
- baseUrl = _config$server.baseUrl,
96
- routes = _config$server.routes,
97
- ssr = _config$server.ssr,
98
- ssrByEntries = _config$server.ssrByEntries;
99
- var packageName = appContext.packageName;
100
- var htmlRoutes = entrypoints.reduce(function (previous, _ref3) {
101
- var entryName = _ref3.entryName;
102
- var entryOptions = getEntryOptions(entryName, ssr, ssrByEntries, packageName);
103
- var isSSR = Boolean(entryOptions);
104
- var _ref4 = (routes === null || routes === void 0 ? void 0 : routes[entryName]) || {},
105
- resHeaders = _ref4.resHeaders;
106
- var route = {
107
- urlPath: "/".concat(entryName === MAIN_ENTRY_NAME ? '' : entryName),
108
- entryName: entryName,
109
- entryPath: removeLeadingSlash(path.posix.normalize("".concat(htmlPath, "/").concat(entryName).concat(disableHtmlFolder ? '.html' : '/index.html'))),
110
- isSPA: true,
111
- isSSR: isSSR,
112
- responseHeaders: resHeaders,
113
- // FIXME: remove the config.enableModernMode
114
- // enableModernMode: Boolean(enableModernMode),
115
- bundle: isSSR ? "".concat(SERVER_BUNDLE_DIRECTORY, "/").concat(entryName, ".js") : undefined
116
- };
117
- if (routes !== null && routes !== void 0 && routes.hasOwnProperty(entryName)) {
118
- var routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : {
119
- route: routes[entryName]
120
- };
121
- route = applyRouteOptions(route, routeOptions);
122
- }
123
- return Array.isArray(route) ? [].concat(_toConsumableArray(previous), _toConsumableArray(route)) : [].concat(_toConsumableArray(previous), [route]);
124
- }, []);
125
- htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
126
- return htmlRoutes;
171
+ var collectHtmlRoutes = function(entrypoints, appContext, config) {
172
+ var disableHtmlFolder = config.html.disableHtmlFolder, _output = config.output, tmp = _output.distPath, ref = tmp === void 0 ? {} : tmp, htmlPath = ref.html, _server = config.server, baseUrl = _server.baseUrl, routes = _server.routes, ssr = _server.ssr, ssrByEntries = _server.ssrByEntries;
173
+ var packageName = appContext.packageName;
174
+ var htmlRoutes = entrypoints.reduce(function(previous, param) {
175
+ var entryName = param.entryName;
176
+ var entryOptions = getEntryOptions(entryName, ssr, ssrByEntries, packageName);
177
+ var isSSR = Boolean(entryOptions);
178
+ var resHeaders = ((routes === null || routes === void 0 ? void 0 : routes[entryName]) || {}).resHeaders;
179
+ var route = {
180
+ urlPath: "/".concat(entryName === MAIN_ENTRY_NAME ? "" : entryName),
181
+ entryName: entryName,
182
+ entryPath: removeLeadingSlash(path.posix.normalize("".concat(htmlPath, "/").concat(entryName).concat(disableHtmlFolder ? ".html" : "/index.html"))),
183
+ isSPA: true,
184
+ isSSR: isSSR,
185
+ responseHeaders: resHeaders,
186
+ bundle: isSSR ? "".concat(SERVER_BUNDLE_DIRECTORY, "/").concat(entryName, ".js") : void 0
187
+ };
188
+ if (routes === null || routes === void 0 ? void 0 : routes.hasOwnProperty(entryName)) {
189
+ var routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : {
190
+ route: routes[entryName]
191
+ };
192
+ route = applyRouteOptions(route, routeOptions);
193
+ }
194
+ return Array.isArray(route) ? _toConsumableArray(previous).concat(_toConsumableArray(route)) : _toConsumableArray(previous).concat([
195
+ route
196
+ ]);
197
+ }, []);
198
+ htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
199
+ return htmlRoutes;
200
+ };
201
+ var collectStaticRoutes = function(appContext, config) {
202
+ var appDirectory = appContext.appDirectory;
203
+ var configDir = config.source.configDir, _server = config.server, _publicRoutes = _server.publicRoutes, publicRoutes = _publicRoutes === void 0 ? {} : _publicRoutes;
204
+ var publicFolder = path.resolve(appDirectory, configDir || "", "public");
205
+ return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(function(filePath) {
206
+ var urlPath = "".concat(urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length)));
207
+ return {
208
+ urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
209
+ isSPA: true,
210
+ isSSR: false,
211
+ entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ""), filePath))
212
+ };
213
+ }) : [];
127
214
  };
128
-
129
- /**
130
- * Collect static public file routes from config/public folder.
131
- * @param appContext - App context info.
132
- * @param config - normalized user config.
133
- * @returns Static public file routes.
134
- */
135
- var collectStaticRoutes = function collectStaticRoutes(appContext, config) {
136
- var appDirectory = appContext.appDirectory;
137
- var configDir = config.source.configDir,
138
- _config$server$public = config.server.publicRoutes,
139
- publicRoutes = _config$server$public === void 0 ? {} : _config$server$public;
140
- var publicFolder = path.resolve(appDirectory, configDir || '', 'public');
141
- return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(function (filePath) {
142
- var urlPath = "".concat(urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length)));
143
- return {
144
- urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
145
- isSPA: true,
146
- isSSR: false,
147
- entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ''), filePath))
148
- };
149
- }) : [];
215
+ var getServerRoutes = function(entrypoints, param) {
216
+ var appContext = param.appContext, config = param.config;
217
+ return _toConsumableArray(collectHtmlRoutes(entrypoints, appContext, config)).concat(_toConsumableArray(collectStaticRoutes(appContext, config)));
150
218
  };
151
- export var getServerRoutes = function getServerRoutes(entrypoints, _ref5) {
152
- var appContext = _ref5.appContext,
153
- config = _ref5.config;
154
- return [].concat(_toConsumableArray(collectHtmlRoutes(entrypoints, appContext, config)), _toConsumableArray(collectStaticRoutes(appContext, config)));
219
+ var toPosix = function(pathStr) {
220
+ return pathStr.split(path.sep).join(path.posix.sep);
155
221
  };
156
- var toPosix = function toPosix(pathStr) {
157
- return pathStr.split(path.sep).join(path.posix.sep);
158
- };
222
+ export { getServerRoutes };