@modern-js/app-tools 2.4.0 → 2.5.0-alpha.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 (276) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/cjs/analyze/constants.js +100 -0
  3. package/dist/cjs/analyze/generateCode.js +251 -0
  4. package/dist/cjs/analyze/getBundleEntry.js +101 -0
  5. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +225 -0
  6. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +221 -0
  7. package/dist/cjs/analyze/getClientRoutes/index.js +30 -0
  8. package/dist/cjs/analyze/getClientRoutes/utils.js +58 -0
  9. package/dist/cjs/analyze/getFileSystemEntry.js +131 -0
  10. package/dist/cjs/analyze/getHtmlTemplate.js +124 -0
  11. package/dist/cjs/analyze/getServerRoutes.js +174 -0
  12. package/dist/cjs/analyze/index.js +294 -0
  13. package/dist/cjs/analyze/isDefaultExportFunction.js +71 -0
  14. package/dist/cjs/analyze/makeLegalIdentifier.js +36 -0
  15. package/dist/cjs/analyze/nestedRoutes.js +179 -0
  16. package/dist/cjs/analyze/templates.js +330 -0
  17. package/dist/cjs/analyze/utils.js +152 -0
  18. package/dist/cjs/builder/builder-rspack/index.js +31 -0
  19. package/dist/cjs/builder/builder-webpack/builderPlugins/compatModern.js +64 -0
  20. package/dist/cjs/builder/builder-webpack/index.js +78 -0
  21. package/dist/cjs/builder/builder-webpack/webpackPlugins/RouterPlugin.js +120 -0
  22. package/dist/cjs/builder/builder-webpack/webpackPlugins/index.js +17 -0
  23. package/dist/cjs/builder/generator/createBuilderOptions.js +47 -0
  24. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +49 -0
  25. package/dist/cjs/builder/generator/getBuilderTargets.js +39 -0
  26. package/dist/cjs/builder/generator/index.js +58 -0
  27. package/dist/cjs/builder/index.js +46 -0
  28. package/dist/cjs/builder/shared/builderPlugins/adapterModern.js +230 -0
  29. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +50 -0
  30. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +57 -0
  31. package/dist/cjs/builder/shared/createCopyPattern.js +75 -0
  32. package/dist/cjs/builder/shared/index.js +19 -0
  33. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +28 -0
  34. package/dist/cjs/builder/shared/types.js +15 -0
  35. package/dist/cjs/commands/build.js +75 -0
  36. package/dist/cjs/commands/deploy.js +31 -0
  37. package/dist/cjs/commands/dev.js +91 -0
  38. package/dist/cjs/commands/index.js +19 -0
  39. package/dist/cjs/commands/inspect.js +41 -0
  40. package/dist/cjs/commands/serve.js +63 -0
  41. package/dist/cjs/config/default.js +186 -0
  42. package/dist/cjs/config/index.js +19 -0
  43. package/dist/cjs/config/initialize/index.js +35 -0
  44. package/dist/cjs/config/initialize/inits.js +161 -0
  45. package/dist/cjs/config/legacy/createHtmlConfig.js +58 -0
  46. package/dist/cjs/config/legacy/createOutputConfig.js +91 -0
  47. package/dist/cjs/config/legacy/createSourceConfig.js +62 -0
  48. package/dist/cjs/config/legacy/createToolsConfig.js +65 -0
  49. package/dist/cjs/config/legacy/index.js +75 -0
  50. package/dist/cjs/defineConfig.js +33 -0
  51. package/dist/cjs/exports/server.js +27 -0
  52. package/dist/cjs/hooks.js +54 -0
  53. package/dist/cjs/index.js +198 -0
  54. package/dist/cjs/initialize/index.js +102 -0
  55. package/dist/cjs/locale/en.js +59 -0
  56. package/dist/cjs/locale/index.js +33 -0
  57. package/dist/cjs/locale/zh.js +59 -0
  58. package/dist/cjs/schema/Schema.js +63 -0
  59. package/dist/cjs/schema/index.js +118 -0
  60. package/dist/cjs/schema/legacy.js +169 -0
  61. package/dist/cjs/types/config/deploy.js +15 -0
  62. package/dist/cjs/types/config/dev.js +15 -0
  63. package/dist/cjs/types/config/experiments.js +15 -0
  64. package/dist/cjs/types/config/html.js +15 -0
  65. package/dist/cjs/types/config/index.js +17 -0
  66. package/dist/cjs/types/config/output.js +15 -0
  67. package/dist/cjs/types/config/performance.js +15 -0
  68. package/dist/cjs/types/config/security.js +15 -0
  69. package/dist/cjs/types/config/source.js +15 -0
  70. package/dist/cjs/types/config/tools.js +15 -0
  71. package/dist/cjs/types/hooks.js +15 -0
  72. package/dist/cjs/types/index.js +19 -0
  73. package/dist/cjs/types/legacyConfig/deploy.js +15 -0
  74. package/dist/cjs/types/legacyConfig/dev.js +15 -0
  75. package/dist/cjs/types/legacyConfig/index.js +15 -0
  76. package/dist/cjs/types/legacyConfig/output.js +15 -0
  77. package/dist/cjs/types/legacyConfig/source.js +15 -0
  78. package/dist/cjs/types/legacyConfig/tools.js +15 -0
  79. package/dist/cjs/types/utils.js +15 -0
  80. package/dist/cjs/utils/config.js +115 -0
  81. package/dist/cjs/utils/createServer.js +70 -0
  82. package/dist/cjs/utils/env.js +38 -0
  83. package/dist/cjs/utils/generateWatchFiles.js +63 -0
  84. package/dist/cjs/utils/getSelectedEntries.js +61 -0
  85. package/dist/cjs/utils/getServerInternalPlugins.js +41 -0
  86. package/dist/cjs/utils/language.js +31 -0
  87. package/dist/cjs/utils/printInstructions.js +34 -0
  88. package/dist/cjs/utils/restart.js +45 -0
  89. package/dist/cjs/utils/routes.js +39 -0
  90. package/dist/cjs/utils/types.js +15 -0
  91. package/dist/esm/analyze/constants.js +42 -0
  92. package/dist/esm/analyze/generateCode.js +486 -0
  93. package/dist/esm/analyze/getBundleEntry.js +64 -0
  94. package/dist/esm/analyze/getClientRoutes/getRoutes.js +233 -0
  95. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  96. package/dist/esm/analyze/getClientRoutes/index.js +3 -0
  97. package/dist/esm/analyze/getClientRoutes/utils.js +23 -0
  98. package/dist/esm/analyze/getFileSystemEntry.js +107 -0
  99. package/dist/esm/analyze/getHtmlTemplate.js +302 -0
  100. package/dist/esm/analyze/getServerRoutes.js +224 -0
  101. package/dist/esm/analyze/index.js +703 -0
  102. package/dist/esm/analyze/isDefaultExportFunction.js +47 -0
  103. package/dist/esm/analyze/makeLegalIdentifier.js +13 -0
  104. package/dist/esm/analyze/nestedRoutes.js +409 -0
  105. package/dist/esm/analyze/templates.js +466 -0
  106. package/dist/esm/analyze/utils.js +374 -0
  107. package/dist/esm/builder/builder-rspack/index.js +6 -0
  108. package/dist/esm/builder/builder-webpack/builderPlugins/compatModern.js +64 -0
  109. package/dist/esm/builder/builder-webpack/index.js +301 -0
  110. package/dist/esm/builder/builder-webpack/webpackPlugins/RouterPlugin.js +346 -0
  111. package/dist/esm/builder/builder-webpack/webpackPlugins/index.js +1 -0
  112. package/dist/esm/builder/generator/createBuilderOptions.js +41 -0
  113. package/dist/esm/builder/generator/createBuilderProviderConfig.js +70 -0
  114. package/dist/esm/builder/generator/getBuilderTargets.js +16 -0
  115. package/dist/esm/builder/generator/index.js +199 -0
  116. package/dist/esm/builder/index.js +175 -0
  117. package/dist/esm/builder/shared/builderPlugins/adapterModern.js +300 -0
  118. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +110 -0
  119. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +72 -0
  120. package/dist/esm/builder/shared/createCopyPattern.js +40 -0
  121. package/dist/esm/builder/shared/index.js +3 -0
  122. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +5 -0
  123. package/dist/esm/builder/shared/types.js +1 -0
  124. package/dist/esm/commands/build.js +291 -0
  125. package/dist/esm/commands/deploy.js +154 -0
  126. package/dist/esm/commands/dev.js +301 -0
  127. package/dist/esm/commands/index.js +3 -0
  128. package/dist/esm/commands/inspect.js +149 -0
  129. package/dist/esm/commands/serve.js +199 -0
  130. package/dist/esm/config/default.js +210 -0
  131. package/dist/esm/config/index.js +3 -0
  132. package/dist/esm/config/initialize/index.js +10 -0
  133. package/dist/esm/config/initialize/inits.js +211 -0
  134. package/dist/esm/config/legacy/createHtmlConfig.js +19 -0
  135. package/dist/esm/config/legacy/createOutputConfig.js +41 -0
  136. package/dist/esm/config/legacy/createSourceConfig.js +42 -0
  137. package/dist/esm/config/legacy/createToolsConfig.js +23 -0
  138. package/dist/esm/config/legacy/index.js +38 -0
  139. package/dist/esm/defineConfig.js +61 -0
  140. package/dist/esm/exports/server.js +2 -0
  141. package/dist/esm/hooks.js +29 -0
  142. package/dist/esm/index.js +713 -0
  143. package/dist/esm/initialize/index.js +284 -0
  144. package/dist/esm/locale/en.js +38 -0
  145. package/dist/esm/locale/index.js +9 -0
  146. package/dist/esm/locale/zh.js +38 -0
  147. package/dist/esm/schema/Schema.js +273 -0
  148. package/dist/esm/schema/index.js +181 -0
  149. package/dist/esm/schema/legacy.js +337 -0
  150. package/dist/esm/types/config/deploy.js +1 -0
  151. package/dist/esm/types/config/dev.js +1 -0
  152. package/dist/esm/types/config/experiments.js +1 -0
  153. package/dist/esm/types/config/html.js +1 -0
  154. package/dist/esm/types/config/index.js +1 -0
  155. package/dist/esm/types/config/output.js +1 -0
  156. package/dist/esm/types/config/performance.js +1 -0
  157. package/dist/esm/types/config/security.js +1 -0
  158. package/dist/esm/types/config/source.js +1 -0
  159. package/dist/esm/types/config/tools.js +1 -0
  160. package/dist/esm/types/hooks.js +1 -0
  161. package/dist/esm/types/index.js +3 -0
  162. package/dist/esm/types/legacyConfig/deploy.js +1 -0
  163. package/dist/esm/types/legacyConfig/dev.js +1 -0
  164. package/dist/esm/types/legacyConfig/index.js +1 -0
  165. package/dist/esm/types/legacyConfig/output.js +1 -0
  166. package/dist/esm/types/legacyConfig/source.js +1 -0
  167. package/dist/esm/types/legacyConfig/tools.js +1 -0
  168. package/dist/esm/types/utils.js +1 -0
  169. package/dist/esm/utils/config.js +302 -0
  170. package/dist/esm/utils/createServer.js +258 -0
  171. package/dist/esm/utils/env.js +13 -0
  172. package/dist/esm/utils/generateWatchFiles.js +214 -0
  173. package/dist/esm/utils/getSelectedEntries.js +186 -0
  174. package/dist/esm/utils/getServerInternalPlugins.js +210 -0
  175. package/dist/esm/utils/language.js +6 -0
  176. package/dist/esm/utils/printInstructions.js +152 -0
  177. package/dist/esm/utils/restart.js +187 -0
  178. package/dist/esm/utils/routes.js +153 -0
  179. package/dist/esm/utils/types.js +1 -0
  180. package/dist/esm-node/analyze/constants.js +56 -0
  181. package/dist/esm-node/analyze/generateCode.js +227 -0
  182. package/dist/esm-node/analyze/getBundleEntry.js +77 -0
  183. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +201 -0
  184. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +197 -0
  185. package/dist/esm-node/analyze/getClientRoutes/index.js +6 -0
  186. package/dist/esm-node/analyze/getClientRoutes/utils.js +31 -0
  187. package/dist/esm-node/analyze/getFileSystemEntry.js +109 -0
  188. package/dist/esm-node/analyze/getHtmlTemplate.js +95 -0
  189. package/dist/esm-node/analyze/getServerRoutes.js +154 -0
  190. package/dist/esm-node/analyze/index.js +285 -0
  191. package/dist/esm-node/analyze/isDefaultExportFunction.js +42 -0
  192. package/dist/esm-node/analyze/makeLegalIdentifier.js +13 -0
  193. package/dist/esm-node/analyze/nestedRoutes.js +150 -0
  194. package/dist/esm-node/analyze/templates.js +297 -0
  195. package/dist/esm-node/analyze/utils.js +121 -0
  196. package/dist/esm-node/builder/builder-rspack/index.js +8 -0
  197. package/dist/esm-node/builder/builder-webpack/builderPlugins/compatModern.js +41 -0
  198. package/dist/esm-node/builder/builder-webpack/index.js +51 -0
  199. package/dist/esm-node/builder/builder-webpack/webpackPlugins/RouterPlugin.js +96 -0
  200. package/dist/esm-node/builder/builder-webpack/webpackPlugins/index.js +1 -0
  201. package/dist/esm-node/builder/generator/createBuilderOptions.js +24 -0
  202. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +26 -0
  203. package/dist/esm-node/builder/generator/getBuilderTargets.js +21 -0
  204. package/dist/esm-node/builder/generator/index.js +29 -0
  205. package/dist/esm-node/builder/index.js +17 -0
  206. package/dist/esm-node/builder/shared/builderPlugins/adapterModern.js +202 -0
  207. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +27 -0
  208. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +34 -0
  209. package/dist/esm-node/builder/shared/createCopyPattern.js +46 -0
  210. package/dist/esm-node/builder/shared/index.js +3 -0
  211. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +7 -0
  212. package/dist/esm-node/builder/shared/types.js +0 -0
  213. package/dist/esm-node/commands/build.js +52 -0
  214. package/dist/esm-node/commands/deploy.js +8 -0
  215. package/dist/esm-node/commands/dev.js +72 -0
  216. package/dist/esm-node/commands/index.js +3 -0
  217. package/dist/esm-node/commands/inspect.js +18 -0
  218. package/dist/esm-node/commands/serve.js +34 -0
  219. package/dist/esm-node/config/default.js +162 -0
  220. package/dist/esm-node/config/index.js +3 -0
  221. package/dist/esm-node/config/initialize/index.js +12 -0
  222. package/dist/esm-node/config/initialize/inits.js +136 -0
  223. package/dist/esm-node/config/legacy/createHtmlConfig.js +35 -0
  224. package/dist/esm-node/config/legacy/createOutputConfig.js +68 -0
  225. package/dist/esm-node/config/legacy/createSourceConfig.js +39 -0
  226. package/dist/esm-node/config/legacy/createToolsConfig.js +42 -0
  227. package/dist/esm-node/config/legacy/index.js +51 -0
  228. package/dist/esm-node/defineConfig.js +9 -0
  229. package/dist/esm-node/exports/server.js +4 -0
  230. package/dist/esm-node/hooks.js +35 -0
  231. package/dist/esm-node/index.js +172 -0
  232. package/dist/esm-node/initialize/index.js +91 -0
  233. package/dist/esm-node/locale/en.js +36 -0
  234. package/dist/esm-node/locale/index.js +9 -0
  235. package/dist/esm-node/locale/zh.js +36 -0
  236. package/dist/esm-node/schema/Schema.js +40 -0
  237. package/dist/esm-node/schema/index.js +88 -0
  238. package/dist/esm-node/schema/legacy.js +148 -0
  239. package/dist/esm-node/types/config/deploy.js +0 -0
  240. package/dist/esm-node/types/config/dev.js +0 -0
  241. package/dist/esm-node/types/config/experiments.js +0 -0
  242. package/dist/esm-node/types/config/html.js +0 -0
  243. package/dist/esm-node/types/config/index.js +1 -0
  244. package/dist/esm-node/types/config/output.js +0 -0
  245. package/dist/esm-node/types/config/performance.js +0 -0
  246. package/dist/esm-node/types/config/security.js +0 -0
  247. package/dist/esm-node/types/config/source.js +0 -0
  248. package/dist/esm-node/types/config/tools.js +0 -0
  249. package/dist/esm-node/types/hooks.js +0 -0
  250. package/dist/esm-node/types/index.js +3 -0
  251. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  252. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  253. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  254. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  255. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  256. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  257. package/dist/esm-node/types/utils.js +0 -0
  258. package/dist/esm-node/utils/config.js +88 -0
  259. package/dist/esm-node/utils/createServer.js +37 -0
  260. package/dist/esm-node/utils/env.js +15 -0
  261. package/dist/esm-node/utils/generateWatchFiles.js +33 -0
  262. package/dist/esm-node/utils/getSelectedEntries.js +38 -0
  263. package/dist/esm-node/utils/getServerInternalPlugins.js +18 -0
  264. package/dist/esm-node/utils/language.js +8 -0
  265. package/dist/esm-node/utils/printInstructions.js +11 -0
  266. package/dist/esm-node/utils/restart.js +22 -0
  267. package/dist/esm-node/utils/routes.js +10 -0
  268. package/dist/esm-node/utils/types.js +0 -0
  269. package/dist/js/modern/analyze/nestedRoutes.js +1 -10
  270. package/dist/js/node/analyze/nestedRoutes.js +1 -10
  271. package/dist/js/treeshaking/analyze/nestedRoutes.js +1 -10
  272. package/dist/types/analyze/templates.d.ts +3 -1
  273. package/dist/types/types/config/tools.d.ts +1 -1
  274. package/dist/types/types/hooks.d.ts +5 -4
  275. package/dist/types/types/index.d.ts +3 -1
  276. package/package.json +30 -31
@@ -0,0 +1,42 @@
1
+ var JS_EXTENSIONS = [
2
+ ".js",
3
+ ".ts",
4
+ ".jsx",
5
+ ".tsx"
6
+ ];
7
+ var INDEX_FILE_NAME = "index";
8
+ var APP_FILE_NAME = "App";
9
+ var PAGES_DIR_NAME = "pages";
10
+ var NESTED_ROUTES_DIR = "routes";
11
+ var FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
12
+ var LOADER_EXPORT_NAME = "loader";
13
+ var TEMP_LOADERS_DIR = "__loaders__";
14
+ var ENTRY_POINT_FILE_NAME = "index.js";
15
+ var ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.js";
16
+ var FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
17
+ var FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
18
+ var FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
19
+ var FILE_SYSTEM_ROUTES_INDEX = "index";
20
+ var FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
21
+ var HTML_PARTIALS_FOLDER = "html";
22
+ var HTML_PARTIALS_EXTENSIONS = [
23
+ ".htm",
24
+ ".html",
25
+ ".ejs"
26
+ ];
27
+ var FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
28
+ var NESTED_ROUTE = {
29
+ LAYOUT_FILE: "layout",
30
+ LAYOUT_LOADER_FILE: "layout.loader",
31
+ PAGE_FILE: "page",
32
+ PAGE_LOADER_FILE: "page.loader",
33
+ LOADING_FILE: "loading",
34
+ ERROR_FILE: "error",
35
+ LOADER_FILE: "loader",
36
+ SPLATE_FILE: "$",
37
+ SPLATE_LOADER_FILE: "$.loader"
38
+ };
39
+ var APP_CONFIG_NAME = "config";
40
+ var APP_INIT_EXPORTED = "init";
41
+ var APP_INIT_IMPORTED = "appInit";
42
+ export { APP_CONFIG_NAME, APP_FILE_NAME, APP_INIT_EXPORTED, APP_INIT_IMPORTED, ENTRY_BOOTSTRAP_FILE_NAME, ENTRY_POINT_FILE_NAME, FILE_SYSTEM_ROUTES_COMPONENTS_DIR, FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP, FILE_SYSTEM_ROUTES_FILE_NAME, FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT, FILE_SYSTEM_ROUTES_IGNORED_REGEX, FILE_SYSTEM_ROUTES_INDEX, FILE_SYSTEM_ROUTES_LAYOUT, HTML_PARTIALS_EXTENSIONS, HTML_PARTIALS_FOLDER, INDEX_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME, NESTED_ROUTE, NESTED_ROUTES_DIR, PAGES_DIR_NAME, TEMP_LOADERS_DIR };
@@ -0,0 +1,486 @@
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 asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _iterableToArray(iter) {
39
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
40
+ }
41
+ function _nonIterableSpread() {
42
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
43
+ }
44
+ function _toConsumableArray(arr) {
45
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
46
+ }
47
+ function _unsupportedIterableToArray(o, minLen) {
48
+ if (!o) return;
49
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
50
+ var n = Object.prototype.toString.call(o).slice(8, -1);
51
+ if (n === "Object" && o.constructor) n = o.constructor.name;
52
+ if (n === "Map" || n === "Set") return Array.from(n);
53
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
54
+ }
55
+ var __generator = this && this.__generator || function(thisArg, body) {
56
+ var f, y, t, g, _ = {
57
+ label: 0,
58
+ sent: function() {
59
+ if (t[0] & 1) throw t[1];
60
+ return t[1];
61
+ },
62
+ trys: [],
63
+ ops: []
64
+ };
65
+ return(g = {
66
+ next: verb(0),
67
+ "throw": verb(1),
68
+ "return": verb(2)
69
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
70
+ return this;
71
+ }), g);
72
+ function verb(n) {
73
+ return function(v) {
74
+ return step([
75
+ n,
76
+ v
77
+ ]);
78
+ };
79
+ }
80
+ function step(op) {
81
+ if (f) throw new TypeError("Generator is already executing.");
82
+ while(_)try {
83
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
84
+ if (y = 0, t) op = [
85
+ op[0] & 2,
86
+ t.value
87
+ ];
88
+ switch(op[0]){
89
+ case 0:
90
+ case 1:
91
+ t = op;
92
+ break;
93
+ case 4:
94
+ _.label++;
95
+ return {
96
+ value: op[1],
97
+ done: false
98
+ };
99
+ case 5:
100
+ _.label++;
101
+ y = op[1];
102
+ op = [
103
+ 0
104
+ ];
105
+ continue;
106
+ case 7:
107
+ op = _.ops.pop();
108
+ _.trys.pop();
109
+ continue;
110
+ default:
111
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
112
+ _ = 0;
113
+ continue;
114
+ }
115
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
116
+ _.label = op[1];
117
+ break;
118
+ }
119
+ if (op[0] === 6 && _.label < t[1]) {
120
+ _.label = t[1];
121
+ t = op;
122
+ break;
123
+ }
124
+ if (t && _.label < t[2]) {
125
+ _.label = t[2];
126
+ _.ops.push(op);
127
+ break;
128
+ }
129
+ if (t[2]) _.ops.pop();
130
+ _.trys.pop();
131
+ continue;
132
+ }
133
+ op = body.call(thisArg, _);
134
+ } catch (e) {
135
+ op = [
136
+ 6,
137
+ e
138
+ ];
139
+ y = 0;
140
+ } finally{
141
+ f = t = 0;
142
+ }
143
+ if (op[0] & 5) throw op[1];
144
+ return {
145
+ value: op[0] ? op[1] : void 0,
146
+ done: true
147
+ };
148
+ }
149
+ };
150
+ import path from "path";
151
+ import { fs, getEntryOptions, logger } from "@modern-js/utils";
152
+ import { useResolvedConfigContext } from "@modern-js/core";
153
+ import * as templates from "./templates";
154
+ import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
155
+ import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME } from "./constants";
156
+ import { getDefaultImports, getServerLoadersFile } from "./utils";
157
+ import { walk } from "./nestedRoutes";
158
+ var createImportSpecifier = function(specifiers) {
159
+ var defaults = "";
160
+ var named = [];
161
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
162
+ try {
163
+ for(var _iterator = specifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
164
+ var _step_value = _step.value, local = _step_value.local, imported = _step_value.imported;
165
+ if (local && imported) {
166
+ named.push("".concat(imported, " as ").concat(local));
167
+ } else if (local) {
168
+ defaults = local;
169
+ } else {
170
+ named.push(imported);
171
+ }
172
+ }
173
+ } catch (err) {
174
+ _didIteratorError = true;
175
+ _iteratorError = err;
176
+ } finally{
177
+ try {
178
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
179
+ _iterator.return();
180
+ }
181
+ } finally{
182
+ if (_didIteratorError) {
183
+ throw _iteratorError;
184
+ }
185
+ }
186
+ }
187
+ if (defaults && named.length) {
188
+ return "".concat(defaults, ", { ").concat(named.join(", "), " }");
189
+ } else if (defaults) {
190
+ return defaults;
191
+ } else {
192
+ return "{ ".concat(named.join(", "), " }");
193
+ }
194
+ };
195
+ var createImportStatements = function(statements) {
196
+ var deDuplicated = [];
197
+ var seen = /* @__PURE__ */ new Map();
198
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
199
+ try {
200
+ var _loop = function() {
201
+ var _step_value = _step.value, value = _step_value.value, specifiers = _step_value.specifiers, initialize = _step_value.initialize;
202
+ if (!seen.has(value)) {
203
+ deDuplicated.push({
204
+ value: value,
205
+ specifiers: specifiers,
206
+ initialize: initialize
207
+ });
208
+ seen.set(value, specifiers);
209
+ } else {
210
+ var _seen_get;
211
+ var _deDuplicated_modifyIndex;
212
+ (_seen_get = seen.get(value)).push.apply(_seen_get, _toConsumableArray(specifiers));
213
+ var modifyIndex = deDuplicated.findIndex(function(v) {
214
+ return v.value === value;
215
+ });
216
+ var _deDuplicated_modifyIndex_initialize;
217
+ var originInitialize = (_deDuplicated_modifyIndex_initialize = (_deDuplicated_modifyIndex = deDuplicated[modifyIndex]) === null || _deDuplicated_modifyIndex === void 0 ? void 0 : _deDuplicated_modifyIndex.initialize) !== null && _deDuplicated_modifyIndex_initialize !== void 0 ? _deDuplicated_modifyIndex_initialize : "";
218
+ deDuplicated[modifyIndex].initialize = originInitialize.concat("\n".concat(initialize || ""));
219
+ }
220
+ };
221
+ for(var _iterator = statements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
222
+ } catch (err) {
223
+ _didIteratorError = true;
224
+ _iteratorError = err;
225
+ } finally{
226
+ try {
227
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
228
+ _iterator.return();
229
+ }
230
+ } finally{
231
+ if (_didIteratorError) {
232
+ throw _iteratorError;
233
+ }
234
+ }
235
+ }
236
+ return deDuplicated.map(function(param) {
237
+ var value = param.value, specifiers = param.specifiers, initialize = param.initialize;
238
+ return "import ".concat(createImportSpecifier(specifiers), " from '").concat(value, "';\n").concat(initialize || "");
239
+ }).join("\n");
240
+ };
241
+ var generateCode = function() {
242
+ var _ref = _asyncToGenerator(function(appContext, config, entrypoints, api) {
243
+ var _config_runtime, _config_runtime1, _config_runtime_router, internalDirectory, srcDirectory, internalDirAlias, internalSrcAlias, packageName, metaName, hookRunners, isV5, mountId, getRoutes;
244
+ function generateEntryCode(entrypoint) {
245
+ return _generateEntryCode.apply(this, arguments);
246
+ }
247
+ function _generateEntryCode() {
248
+ _generateEntryCode = _asyncToGenerator(function(entrypoint) {
249
+ var entryName, isAutoMount, customBootstrap, fileSystemRoutes, initialRoutes, nestedRoute, routes, config2, ssr, mode, hasPageRoute, _ref, code2, _, _tmp, routesServerFile, code3, _ref1, importStatements, plugins, _ref2, renderFunction, exportStatement, code, entryFile, _ref3, asyncEntryCode, bootstrapFile;
250
+ return __generator(this, function(_state) {
251
+ switch(_state.label){
252
+ case 0:
253
+ entryName = entrypoint.entryName, isAutoMount = entrypoint.isAutoMount, customBootstrap = entrypoint.customBootstrap, fileSystemRoutes = entrypoint.fileSystemRoutes;
254
+ if (!isAutoMount) return [
255
+ 3,
256
+ 17
257
+ ];
258
+ if (!fileSystemRoutes) return [
259
+ 3,
260
+ 10
261
+ ];
262
+ initialRoutes = [];
263
+ nestedRoute = null;
264
+ if (entrypoint.entry) {
265
+ initialRoutes = getRoutes({
266
+ entrypoint: entrypoint,
267
+ srcDirectory: srcDirectory,
268
+ srcAlias: internalSrcAlias,
269
+ internalDirectory: internalDirectory,
270
+ internalDirAlias: internalDirAlias
271
+ });
272
+ }
273
+ if (!entrypoint.nestedRoutesEntry) return [
274
+ 3,
275
+ 3
276
+ ];
277
+ if (!!isV5) return [
278
+ 3,
279
+ 2
280
+ ];
281
+ return [
282
+ 4,
283
+ walk(entrypoint.nestedRoutesEntry, entrypoint.nestedRoutesEntry, {
284
+ name: internalSrcAlias,
285
+ basename: srcDirectory
286
+ }, entrypoint.entryName)
287
+ ];
288
+ case 1:
289
+ nestedRoute = _state.sent();
290
+ if (nestedRoute) {
291
+ initialRoutes.unshift(nestedRoute);
292
+ }
293
+ return [
294
+ 3,
295
+ 3
296
+ ];
297
+ case 2:
298
+ logger.error("Nested routes is not supported in legacy mode.");
299
+ process.exit(1);
300
+ _state.label = 3;
301
+ case 3:
302
+ return [
303
+ 4,
304
+ hookRunners.modifyFileSystemRoutes({
305
+ entrypoint: entrypoint,
306
+ routes: initialRoutes
307
+ })
308
+ ];
309
+ case 4:
310
+ routes = _state.sent().routes;
311
+ config2 = useResolvedConfigContext();
312
+ ssr = getEntryOptions(entryName, config2.server.ssr, config2.server.ssrByEntries, packageName);
313
+ if (ssr) {
314
+ mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
315
+ } else {
316
+ mode = false;
317
+ }
318
+ if (mode === "stream") {
319
+ hasPageRoute = routes.some(function(route) {
320
+ return "type" in route && route.type === "page";
321
+ });
322
+ if (hasPageRoute) {
323
+ logger.error("Streaming ssr is not supported when pages dir exists");
324
+ process.exit(1);
325
+ }
326
+ }
327
+ _ = hookRunners.beforeGenerateRoutes;
328
+ _tmp = {
329
+ entrypoint: entrypoint
330
+ };
331
+ return [
332
+ 4,
333
+ templates.fileSystemRoutes({
334
+ routes: routes,
335
+ ssrMode: mode,
336
+ nestedRoutesEntry: entrypoint.nestedRoutesEntry,
337
+ entryName: entrypoint.entryName,
338
+ internalDirectory: internalDirectory
339
+ })
340
+ ];
341
+ case 5:
342
+ return [
343
+ 4,
344
+ _.apply(hookRunners, [
345
+ (_tmp.code = _state.sent(), _tmp)
346
+ ])
347
+ ];
348
+ case 6:
349
+ _ref = _state.sent(), code2 = _ref.code;
350
+ if (!(entrypoint.nestedRoutesEntry && mode)) return [
351
+ 3,
352
+ 9
353
+ ];
354
+ routesServerFile = getServerLoadersFile(internalDirectory, entryName);
355
+ code3 = templates.routesForServer({
356
+ routes: routes,
357
+ metaName: metaName
358
+ });
359
+ return [
360
+ 4,
361
+ fs.ensureFile(routesServerFile)
362
+ ];
363
+ case 7:
364
+ _state.sent();
365
+ return [
366
+ 4,
367
+ fs.writeFile(routesServerFile, code3)
368
+ ];
369
+ case 8:
370
+ _state.sent();
371
+ _state.label = 9;
372
+ case 9:
373
+ fs.outputFileSync(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(FILE_SYSTEM_ROUTES_FILE_NAME)), code2, "utf8");
374
+ _state.label = 10;
375
+ case 10:
376
+ return [
377
+ 4,
378
+ hookRunners.modifyEntryImports({
379
+ entrypoint: entrypoint,
380
+ imports: getDefaultImports({
381
+ entrypoint: entrypoint,
382
+ srcDirectory: srcDirectory,
383
+ internalSrcAlias: internalSrcAlias,
384
+ internalDirAlias: internalDirAlias,
385
+ internalDirectory: internalDirectory
386
+ })
387
+ })
388
+ ];
389
+ case 11:
390
+ _ref1 = _state.sent(), importStatements = _ref1.imports;
391
+ return [
392
+ 4,
393
+ hookRunners.modifyEntryRuntimePlugins({
394
+ entrypoint: entrypoint,
395
+ plugins: []
396
+ })
397
+ ];
398
+ case 12:
399
+ plugins = _state.sent().plugins;
400
+ return [
401
+ 4,
402
+ hookRunners.modifyEntryRenderFunction({
403
+ entrypoint: entrypoint,
404
+ code: templates.renderFunction({
405
+ plugins: plugins,
406
+ customBootstrap: customBootstrap,
407
+ fileSystemRoutes: fileSystemRoutes
408
+ })
409
+ })
410
+ ];
411
+ case 13:
412
+ _ref2 = _state.sent(), renderFunction = _ref2.code;
413
+ return [
414
+ 4,
415
+ hookRunners.modifyEntryExport({
416
+ entrypoint: entrypoint,
417
+ exportStatement: "export default AppWrapper;"
418
+ })
419
+ ];
420
+ case 14:
421
+ exportStatement = _state.sent().exportStatement;
422
+ code = templates.index({
423
+ mountId: mountId,
424
+ imports: createImportStatements(importStatements),
425
+ renderFunction: renderFunction,
426
+ exportStatement: exportStatement
427
+ });
428
+ entryFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_FILE_NAME));
429
+ entrypoint.entry = entryFile;
430
+ if (!config.source.enableAsyncEntry) return [
431
+ 3,
432
+ 16
433
+ ];
434
+ return [
435
+ 4,
436
+ hookRunners.modifyAsyncEntry({
437
+ entrypoint: entrypoint,
438
+ code: "import('./".concat(ENTRY_BOOTSTRAP_FILE_NAME, "');")
439
+ })
440
+ ];
441
+ case 15:
442
+ _ref3 = _state.sent(), asyncEntryCode = _ref3.code;
443
+ fs.outputFileSync(entryFile, asyncEntryCode, "utf8");
444
+ bootstrapFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_BOOTSTRAP_FILE_NAME));
445
+ fs.outputFileSync(bootstrapFile, code, "utf8");
446
+ return [
447
+ 3,
448
+ 17
449
+ ];
450
+ case 16:
451
+ fs.outputFileSync(entryFile, code, "utf8");
452
+ _state.label = 17;
453
+ case 17:
454
+ return [
455
+ 2
456
+ ];
457
+ }
458
+ });
459
+ });
460
+ return _generateEntryCode.apply(this, arguments);
461
+ }
462
+ return __generator(this, function(_state) {
463
+ switch(_state.label){
464
+ case 0:
465
+ internalDirectory = appContext.internalDirectory, srcDirectory = appContext.srcDirectory, internalDirAlias = appContext.internalDirAlias, internalSrcAlias = appContext.internalSrcAlias, packageName = appContext.packageName, metaName = appContext.metaName;
466
+ hookRunners = api.useHookRunners();
467
+ isV5 = typeof ((_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : _config_runtime.router) !== "boolean" && (config === null || config === void 0 ? void 0 : (_config_runtime1 = config.runtime) === null || _config_runtime1 === void 0 ? void 0 : (_config_runtime_router = _config_runtime1.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
468
+ mountId = config.html.mountId;
469
+ getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
470
+ return [
471
+ 4,
472
+ Promise.all(entrypoints.map(generateEntryCode))
473
+ ];
474
+ case 1:
475
+ _state.sent();
476
+ return [
477
+ 2
478
+ ];
479
+ }
480
+ });
481
+ });
482
+ return function generateCode(appContext, config, entrypoints, api) {
483
+ return _ref.apply(this, arguments);
484
+ };
485
+ }();
486
+ export { createImportStatements, generateCode };
@@ -0,0 +1,64 @@
1
+ import path from "path";
2
+ import { ensureAbsolutePath, fs, findExists, MAIN_ENTRY_NAME } from "@modern-js/utils";
3
+ import { getFileSystemEntry } from "./getFileSystemEntry";
4
+ import { JS_EXTENSIONS } from "./constants";
5
+ var ensureExtensions = function(file) {
6
+ if (!path.extname(file)) {
7
+ return findExists(JS_EXTENSIONS.map(function(ext) {
8
+ return "".concat(file).concat(ext);
9
+ })) || file;
10
+ }
11
+ return file;
12
+ };
13
+ var ifAlreadyExists = function(entrypoints, checked) {
14
+ return entrypoints.some(function(entrypoint) {
15
+ if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
16
+ checked.entryName = entrypoint.entryName;
17
+ return true;
18
+ }
19
+ if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
20
+ throw new Error("Entry configuration conflicts\n Your configuration: ".concat(checked.entry, ".\n Default entrypoint: ").concat(entrypoint.entry, "\n Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules."));
21
+ }
22
+ return false;
23
+ });
24
+ };
25
+ var getBundleEntry = function(appContext, config) {
26
+ var appDirectory = appContext.appDirectory, packageName = appContext.packageName;
27
+ var _config_source = config.source, disableDefaultEntries = _config_source.disableDefaultEntries, entries = _config_source.entries, entriesDir = _config_source.entriesDir;
28
+ var defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
29
+ if (entries) {
30
+ Object.keys(entries).forEach(function(name) {
31
+ var value = entries[name];
32
+ var entrypoint = typeof value === "string" ? {
33
+ entryName: name,
34
+ entry: ensureAbsolutePath(appDirectory, value),
35
+ absoluteEntryDir: path.dirname(ensureAbsolutePath(appDirectory, value)),
36
+ isAutoMount: true,
37
+ fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : void 0
38
+ } : {
39
+ entryName: name,
40
+ entry: ensureAbsolutePath(appDirectory, value.entry),
41
+ absoluteEntryDir: path.dirname(ensureAbsolutePath(appDirectory, value.entry)),
42
+ isAutoMount: !value.disableMount,
43
+ customBootstrap: value.customBootstrap && ensureAbsolutePath(appDirectory, value.customBootstrap),
44
+ fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value.entry)).isDirectory() ? {} : void 0
45
+ };
46
+ if (entrypoint.fileSystemRoutes) {
47
+ entrypoint.nestedRoutesEntry = entrypoint.entry;
48
+ }
49
+ if (!ifAlreadyExists(defaults, entrypoint)) {
50
+ defaults.push(entrypoint);
51
+ }
52
+ });
53
+ }
54
+ if (!disableDefaultEntries) {
55
+ var entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
56
+ var found = defaults.find(function(param) {
57
+ var entryName = param.entryName, entry = param.entry, _param_nestedRoutesEntry = param.nestedRoutesEntry, nestedRoutesEntry = _param_nestedRoutesEntry === void 0 ? "" : _param_nestedRoutesEntry;
58
+ return entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs;
59
+ });
60
+ found && (found.entryName = MAIN_ENTRY_NAME);
61
+ }
62
+ return defaults;
63
+ };
64
+ export { getBundleEntry };