@modern-js/app-tools 2.32.0 → 2.32.1-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 (254) hide show
  1. package/dist/cjs/analyze/constants.js +8 -6
  2. package/dist/cjs/analyze/nestedRoutes.js +14 -0
  3. package/dist/esm/analyze/constants.js +8 -6
  4. package/dist/esm/analyze/nestedRoutes.js +15 -1
  5. package/dist/esm-node/analyze/constants.js +8 -6
  6. package/dist/esm-node/analyze/nestedRoutes.js +14 -0
  7. package/dist/js/modern/analyze/constants.js +54 -0
  8. package/dist/js/modern/analyze/generateCode.js +247 -0
  9. package/dist/js/modern/analyze/getBundleEntry.js +71 -0
  10. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
  11. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
  12. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
  13. package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
  14. package/dist/js/modern/analyze/getFileSystemEntry.js +109 -0
  15. package/dist/js/modern/analyze/getHtmlTemplate.js +115 -0
  16. package/dist/js/modern/analyze/getServerRoutes.js +175 -0
  17. package/dist/js/modern/analyze/index.js +332 -0
  18. package/dist/js/modern/analyze/isDefaultExportFunction.js +42 -0
  19. package/dist/js/modern/analyze/makeLegalIdentifier.js +13 -0
  20. package/dist/js/modern/analyze/nestedRoutes.js +157 -0
  21. package/dist/js/modern/analyze/templates.js +334 -0
  22. package/dist/js/modern/analyze/utils.js +141 -0
  23. package/dist/js/modern/builder/builderPlugins/compatModern.js +233 -0
  24. package/dist/js/modern/builder/index.js +159 -0
  25. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  26. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  27. package/dist/js/modern/builder/share.js +46 -0
  28. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
  29. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
  30. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
  31. package/dist/js/modern/commands/build.js +91 -0
  32. package/dist/js/modern/commands/deploy.js +28 -0
  33. package/dist/js/modern/commands/dev.js +109 -0
  34. package/dist/js/modern/commands/index.js +3 -0
  35. package/dist/js/modern/commands/inspect.js +38 -0
  36. package/dist/js/modern/commands/serve.js +54 -0
  37. package/dist/js/modern/config/default.js +175 -0
  38. package/dist/js/modern/config/index.js +8 -0
  39. package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
  40. package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
  41. package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
  42. package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
  43. package/dist/js/modern/config/initial/index.js +16 -0
  44. package/dist/js/modern/config/initial/inits.js +152 -0
  45. package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
  46. package/dist/js/modern/defineConfig.js +27 -0
  47. package/dist/js/modern/exports/server.js +4 -0
  48. package/dist/js/modern/hooks.js +35 -0
  49. package/dist/js/modern/index.js +211 -0
  50. package/dist/js/modern/initialize/index.js +124 -0
  51. package/dist/js/modern/locale/en.js +36 -0
  52. package/dist/js/modern/locale/index.js +9 -0
  53. package/dist/js/modern/locale/zh.js +36 -0
  54. package/dist/js/modern/schema/Schema.js +40 -0
  55. package/dist/js/modern/schema/index.js +88 -0
  56. package/dist/js/modern/schema/legacy.js +148 -0
  57. package/dist/js/modern/types/config/deploy.js +0 -0
  58. package/dist/js/modern/types/config/dev.js +0 -0
  59. package/dist/js/modern/types/config/experiments.js +0 -0
  60. package/dist/js/modern/types/config/html.js +0 -0
  61. package/dist/js/modern/types/config/index.js +1 -0
  62. package/dist/js/modern/types/config/output.js +0 -0
  63. package/dist/js/modern/types/config/performance.js +0 -0
  64. package/dist/js/modern/types/config/security.js +0 -0
  65. package/dist/js/modern/types/config/source.js +0 -0
  66. package/dist/js/modern/types/config/tools.js +0 -0
  67. package/dist/js/modern/types/hooks.js +0 -0
  68. package/dist/js/modern/types/index.js +3 -0
  69. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  70. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  71. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  72. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  73. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  74. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  75. package/dist/js/modern/utils/config.js +128 -0
  76. package/dist/js/modern/utils/createServer.js +75 -0
  77. package/dist/js/modern/utils/env.js +15 -0
  78. package/dist/js/modern/utils/generateWatchFiles.js +55 -0
  79. package/dist/js/modern/utils/getSelectedEntries.js +58 -0
  80. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  81. package/dist/js/modern/utils/language.js +8 -0
  82. package/dist/js/modern/utils/printInstructions.js +31 -0
  83. package/dist/js/modern/utils/restart.js +44 -0
  84. package/dist/js/modern/utils/routes.js +30 -0
  85. package/dist/js/modern/utils/types.js +0 -0
  86. package/dist/js/node/analyze/constants.js +98 -0
  87. package/dist/js/node/analyze/generateCode.js +271 -0
  88. package/dist/js/node/analyze/getBundleEntry.js +95 -0
  89. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
  90. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
  91. package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
  92. package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
  93. package/dist/js/node/analyze/getFileSystemEntry.js +131 -0
  94. package/dist/js/node/analyze/getHtmlTemplate.js +144 -0
  95. package/dist/js/node/analyze/getServerRoutes.js +194 -0
  96. package/dist/js/node/analyze/index.js +339 -0
  97. package/dist/js/node/analyze/isDefaultExportFunction.js +71 -0
  98. package/dist/js/node/analyze/makeLegalIdentifier.js +36 -0
  99. package/dist/js/node/analyze/nestedRoutes.js +184 -0
  100. package/dist/js/node/analyze/templates.js +365 -0
  101. package/dist/js/node/analyze/utils.js +172 -0
  102. package/dist/js/node/builder/builderPlugins/compatModern.js +258 -0
  103. package/dist/js/node/builder/index.js +177 -0
  104. package/dist/js/node/builder/loaders/routerLoader.js +38 -0
  105. package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
  106. package/dist/js/node/builder/share.js +75 -0
  107. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
  108. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
  109. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
  110. package/dist/js/node/commands/build.js +112 -0
  111. package/dist/js/node/commands/deploy.js +51 -0
  112. package/dist/js/node/commands/dev.js +126 -0
  113. package/dist/js/node/commands/index.js +19 -0
  114. package/dist/js/node/commands/inspect.js +61 -0
  115. package/dist/js/node/commands/serve.js +83 -0
  116. package/dist/js/node/config/default.js +197 -0
  117. package/dist/js/node/config/index.js +34 -0
  118. package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
  119. package/dist/js/node/config/initial/createOutputConfig.js +91 -0
  120. package/dist/js/node/config/initial/createSourceConfig.js +62 -0
  121. package/dist/js/node/config/initial/createToolsConfig.js +65 -0
  122. package/dist/js/node/config/initial/index.js +41 -0
  123. package/dist/js/node/config/initial/inits.js +175 -0
  124. package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
  125. package/dist/js/node/defineConfig.js +49 -0
  126. package/dist/js/node/exports/server.js +27 -0
  127. package/dist/js/node/hooks.js +54 -0
  128. package/dist/js/node/index.js +235 -0
  129. package/dist/js/node/initialize/index.js +134 -0
  130. package/dist/js/node/locale/en.js +59 -0
  131. package/dist/js/node/locale/index.js +33 -0
  132. package/dist/js/node/locale/zh.js +59 -0
  133. package/dist/js/node/schema/Schema.js +63 -0
  134. package/dist/js/node/schema/index.js +118 -0
  135. package/dist/js/node/schema/legacy.js +169 -0
  136. package/dist/js/node/types/config/deploy.js +15 -0
  137. package/dist/js/node/types/config/dev.js +15 -0
  138. package/dist/js/node/types/config/experiments.js +15 -0
  139. package/dist/js/node/types/config/html.js +15 -0
  140. package/dist/js/node/types/config/index.js +17 -0
  141. package/dist/js/node/types/config/output.js +15 -0
  142. package/dist/js/node/types/config/performance.js +15 -0
  143. package/dist/js/node/types/config/security.js +15 -0
  144. package/dist/js/node/types/config/source.js +15 -0
  145. package/dist/js/node/types/config/tools.js +15 -0
  146. package/dist/js/node/types/hooks.js +15 -0
  147. package/dist/js/node/types/index.js +19 -0
  148. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  149. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  150. package/dist/js/node/types/legacyConfig/index.js +15 -0
  151. package/dist/js/node/types/legacyConfig/output.js +15 -0
  152. package/dist/js/node/types/legacyConfig/source.js +15 -0
  153. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  154. package/dist/js/node/utils/config.js +153 -0
  155. package/dist/js/node/utils/createServer.js +106 -0
  156. package/dist/js/node/utils/env.js +38 -0
  157. package/dist/js/node/utils/generateWatchFiles.js +85 -0
  158. package/dist/js/node/utils/getSelectedEntries.js +81 -0
  159. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  160. package/dist/js/node/utils/language.js +31 -0
  161. package/dist/js/node/utils/printInstructions.js +54 -0
  162. package/dist/js/node/utils/restart.js +67 -0
  163. package/dist/js/node/utils/routes.js +59 -0
  164. package/dist/js/node/utils/types.js +15 -0
  165. package/dist/js/treeshaking/analyze/constants.js +40 -0
  166. package/dist/js/treeshaking/analyze/generateCode.js +485 -0
  167. package/dist/js/treeshaking/analyze/getBundleEntry.js +62 -0
  168. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
  169. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  170. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
  171. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
  172. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
  173. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
  174. package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
  175. package/dist/js/treeshaking/analyze/index.js +697 -0
  176. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
  177. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
  178. package/dist/js/treeshaking/analyze/nestedRoutes.js +384 -0
  179. package/dist/js/treeshaking/analyze/templates.js +468 -0
  180. package/dist/js/treeshaking/analyze/utils.js +374 -0
  181. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +304 -0
  182. package/dist/js/treeshaking/builder/index.js +374 -0
  183. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  184. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  185. package/dist/js/treeshaking/builder/share.js +40 -0
  186. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
  187. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
  188. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +343 -0
  189. package/dist/js/treeshaking/commands/build.js +291 -0
  190. package/dist/js/treeshaking/commands/deploy.js +154 -0
  191. package/dist/js/treeshaking/commands/dev.js +301 -0
  192. package/dist/js/treeshaking/commands/index.js +3 -0
  193. package/dist/js/treeshaking/commands/inspect.js +149 -0
  194. package/dist/js/treeshaking/commands/serve.js +199 -0
  195. package/dist/js/treeshaking/config/default.js +210 -0
  196. package/dist/js/treeshaking/config/index.js +3 -0
  197. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
  198. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
  199. package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
  200. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
  201. package/dist/js/treeshaking/config/initial/index.js +12 -0
  202. package/dist/js/treeshaking/config/initial/inits.js +209 -0
  203. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
  204. package/dist/js/treeshaking/defineConfig.js +61 -0
  205. package/dist/js/treeshaking/exports/server.js +2 -0
  206. package/dist/js/treeshaking/hooks.js +29 -0
  207. package/dist/js/treeshaking/index.js +706 -0
  208. package/dist/js/treeshaking/initialize/index.js +276 -0
  209. package/dist/js/treeshaking/locale/en.js +38 -0
  210. package/dist/js/treeshaking/locale/index.js +9 -0
  211. package/dist/js/treeshaking/locale/zh.js +38 -0
  212. package/dist/js/treeshaking/schema/Schema.js +273 -0
  213. package/dist/js/treeshaking/schema/index.js +181 -0
  214. package/dist/js/treeshaking/schema/legacy.js +337 -0
  215. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  216. package/dist/js/treeshaking/types/config/dev.js +1 -0
  217. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  218. package/dist/js/treeshaking/types/config/html.js +1 -0
  219. package/dist/js/treeshaking/types/config/index.js +1 -0
  220. package/dist/js/treeshaking/types/config/output.js +1 -0
  221. package/dist/js/treeshaking/types/config/performance.js +1 -0
  222. package/dist/js/treeshaking/types/config/security.js +1 -0
  223. package/dist/js/treeshaking/types/config/source.js +1 -0
  224. package/dist/js/treeshaking/types/config/tools.js +1 -0
  225. package/dist/js/treeshaking/types/hooks.js +1 -0
  226. package/dist/js/treeshaking/types/index.js +3 -0
  227. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  228. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  229. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  230. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  231. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  232. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  233. package/dist/js/treeshaking/utils/config.js +302 -0
  234. package/dist/js/treeshaking/utils/createServer.js +258 -0
  235. package/dist/js/treeshaking/utils/env.js +13 -0
  236. package/dist/js/treeshaking/utils/generateWatchFiles.js +214 -0
  237. package/dist/js/treeshaking/utils/getSelectedEntries.js +186 -0
  238. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  239. package/dist/js/treeshaking/utils/language.js +6 -0
  240. package/dist/js/treeshaking/utils/printInstructions.js +152 -0
  241. package/dist/js/treeshaking/utils/restart.js +187 -0
  242. package/dist/js/treeshaking/utils/routes.js +153 -0
  243. package/dist/js/treeshaking/utils/types.js +1 -0
  244. package/dist/types/analyze/constants.d.ts +6 -4
  245. package/dist/types/defineConfig.d.ts +6 -3
  246. package/dist/types/index.d.ts +7 -1
  247. package/dist/types/types/config/deploy.d.ts +13 -0
  248. package/dist/types/types/config/dev.d.ts +5 -2
  249. package/dist/types/types/config/output.d.ts +20 -0
  250. package/dist/types/types/config/source.d.ts +38 -1
  251. package/dist/types/types/config/testing.d.ts +1 -1
  252. package/dist/types/types/config/tools.d.ts +7 -3
  253. package/dist/types/types/legacyConfig/testing.d.ts +1 -1
  254. package/package.json +5 -5
@@ -0,0 +1,485 @@
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 _value = _step.value, local = _value.local, imported = _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 _value = _step.value, value = _value.value, specifiers = _value.specifiers, initialize = _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 _instance;
211
+ var ref;
212
+ (_instance = seen.get(value)).push.apply(_instance, _toConsumableArray(specifiers));
213
+ var modifyIndex = deDuplicated.findIndex(function(v) {
214
+ return v.value === value;
215
+ });
216
+ var ref1;
217
+ var originInitialize = (ref1 = (ref = deDuplicated[modifyIndex]) === null || ref === void 0 ? void 0 : ref.initialize) !== null && ref1 !== void 0 ? ref1 : "";
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 ref, ref1, ref2, internalDirectory, srcDirectory, internalDirAlias, internalSrcAlias, packageName, 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
+ });
358
+ return [
359
+ 4,
360
+ fs.ensureFile(routesServerFile)
361
+ ];
362
+ case 7:
363
+ _state.sent();
364
+ return [
365
+ 4,
366
+ fs.writeFile(routesServerFile, code3)
367
+ ];
368
+ case 8:
369
+ _state.sent();
370
+ _state.label = 9;
371
+ case 9:
372
+ fs.outputFileSync(path.resolve(internalDirectory, "./".concat(entryName, "/").concat(FILE_SYSTEM_ROUTES_FILE_NAME)), code2, "utf8");
373
+ _state.label = 10;
374
+ case 10:
375
+ return [
376
+ 4,
377
+ hookRunners.modifyEntryImports({
378
+ entrypoint: entrypoint,
379
+ imports: getDefaultImports({
380
+ entrypoint: entrypoint,
381
+ srcDirectory: srcDirectory,
382
+ internalSrcAlias: internalSrcAlias,
383
+ internalDirAlias: internalDirAlias,
384
+ internalDirectory: internalDirectory
385
+ })
386
+ })
387
+ ];
388
+ case 11:
389
+ ref1 = _state.sent(), importStatements = ref1.imports;
390
+ return [
391
+ 4,
392
+ hookRunners.modifyEntryRuntimePlugins({
393
+ entrypoint: entrypoint,
394
+ plugins: []
395
+ })
396
+ ];
397
+ case 12:
398
+ plugins = _state.sent().plugins;
399
+ return [
400
+ 4,
401
+ hookRunners.modifyEntryRenderFunction({
402
+ entrypoint: entrypoint,
403
+ code: templates.renderFunction({
404
+ plugins: plugins,
405
+ customBootstrap: customBootstrap,
406
+ fileSystemRoutes: fileSystemRoutes
407
+ })
408
+ })
409
+ ];
410
+ case 13:
411
+ ref2 = _state.sent(), renderFunction = ref2.code;
412
+ return [
413
+ 4,
414
+ hookRunners.modifyEntryExport({
415
+ entrypoint: entrypoint,
416
+ exportStatement: "export default AppWrapper;"
417
+ })
418
+ ];
419
+ case 14:
420
+ exportStatement = _state.sent().exportStatement;
421
+ code = templates.index({
422
+ mountId: mountId,
423
+ imports: createImportStatements(importStatements),
424
+ renderFunction: renderFunction,
425
+ exportStatement: exportStatement
426
+ });
427
+ entryFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_FILE_NAME));
428
+ entrypoint.entry = entryFile;
429
+ if (!config.source.enableAsyncEntry) return [
430
+ 3,
431
+ 16
432
+ ];
433
+ return [
434
+ 4,
435
+ hookRunners.modifyAsyncEntry({
436
+ entrypoint: entrypoint,
437
+ code: "import('./".concat(ENTRY_BOOTSTRAP_FILE_NAME, "');")
438
+ })
439
+ ];
440
+ case 15:
441
+ ref3 = _state.sent(), asyncEntryCode = ref3.code;
442
+ fs.outputFileSync(entryFile, asyncEntryCode, "utf8");
443
+ bootstrapFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_BOOTSTRAP_FILE_NAME));
444
+ fs.outputFileSync(bootstrapFile, code, "utf8");
445
+ return [
446
+ 3,
447
+ 17
448
+ ];
449
+ case 16:
450
+ fs.outputFileSync(entryFile, code, "utf8");
451
+ _state.label = 17;
452
+ case 17:
453
+ return [
454
+ 2
455
+ ];
456
+ }
457
+ });
458
+ });
459
+ return _generateEntryCode.apply(this, arguments);
460
+ }
461
+ return __generator(this, function(_state) {
462
+ switch(_state.label){
463
+ case 0:
464
+ internalDirectory = appContext.internalDirectory, srcDirectory = appContext.srcDirectory, internalDirAlias = appContext.internalDirAlias, internalSrcAlias = appContext.internalSrcAlias, packageName = appContext.packageName;
465
+ hookRunners = api.useHookRunners();
466
+ isV5 = typeof ((ref = config.runtime) === null || ref === void 0 ? void 0 : ref.router) !== "boolean" && (config === null || config === void 0 ? void 0 : (ref1 = config.runtime) === null || ref1 === void 0 ? void 0 : (ref2 = ref1.router) === null || ref2 === void 0 ? void 0 : ref2.mode) === "react-router-5";
467
+ mountId = config.html.mountId;
468
+ getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
469
+ return [
470
+ 4,
471
+ Promise.all(entrypoints.map(generateEntryCode))
472
+ ];
473
+ case 1:
474
+ _state.sent();
475
+ return [
476
+ 2
477
+ ];
478
+ }
479
+ });
480
+ });
481
+ return function generateCode(appContext, config, entrypoints, api) {
482
+ return _ref.apply(this, arguments);
483
+ };
484
+ }();
485
+ export { createImportStatements, generateCode };
@@ -0,0 +1,62 @@
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 _source = config.source, disableDefaultEntries = _source.disableDefaultEntries, entries = _source.entries, entriesDir = _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
+ isAutoMount: true,
36
+ fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : void 0
37
+ } : {
38
+ entryName: name,
39
+ entry: ensureAbsolutePath(appDirectory, value.entry),
40
+ isAutoMount: !value.disableMount,
41
+ customBootstrap: value.customBootstrap && ensureAbsolutePath(appDirectory, value.customBootstrap),
42
+ fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value.entry)).isDirectory() ? {} : void 0
43
+ };
44
+ if (entrypoint.fileSystemRoutes) {
45
+ entrypoint.nestedRoutesEntry = entrypoint.entry;
46
+ }
47
+ if (!ifAlreadyExists(defaults, entrypoint)) {
48
+ defaults.push(entrypoint);
49
+ }
50
+ });
51
+ }
52
+ if (!disableDefaultEntries) {
53
+ var entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
54
+ var found = defaults.find(function(param) {
55
+ var entryName = param.entryName, entry = param.entry, _nestedRoutesEntry = param.nestedRoutesEntry, nestedRoutesEntry = _nestedRoutesEntry === void 0 ? "" : _nestedRoutesEntry;
56
+ return entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs;
57
+ });
58
+ found && (found.entryName = MAIN_ENTRY_NAME);
59
+ }
60
+ return defaults;
61
+ };
62
+ export { getBundleEntry };