@modern-js/app-tools 2.58.2 → 2.59.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) hide show
  1. package/dist/cjs/builder/builder-rspack/adapterCopy.js +1 -1
  2. package/dist/cjs/builder/generator/getBuilderEnvironments.js +1 -1
  3. package/dist/cjs/builder/generator/index.js +2 -3
  4. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +8 -13
  5. package/dist/cjs/builder/shared/builderPlugins/index.js +1 -3
  6. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +1 -1
  7. package/dist/cjs/commands/build.js +2 -2
  8. package/dist/cjs/commands/dev.js +6 -5
  9. package/dist/cjs/commands/index.js +1 -1
  10. package/dist/cjs/commands/serve.js +4 -3
  11. package/dist/cjs/config/legacy/index.js +3 -3
  12. package/dist/cjs/esm/register-esm.mjs +2 -3
  13. package/dist/cjs/esm/utils.mjs +2 -2
  14. package/dist/cjs/index.js +17 -10
  15. package/dist/cjs/locale/index.js +1 -1
  16. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +50 -44
  17. package/dist/cjs/plugins/analyze/getServerRoutes.js +2 -2
  18. package/dist/cjs/plugins/analyze/index.js +6 -6
  19. package/dist/cjs/plugins/analyze/utils.js +1 -1
  20. package/dist/cjs/plugins/deploy/dependencies/index.js +1 -1
  21. package/dist/cjs/plugins/deploy/dependencies/utils.js +2 -2
  22. package/dist/cjs/plugins/deploy/index.js +2 -2
  23. package/dist/cjs/plugins/deploy/platforms/netlify.js +1 -1
  24. package/dist/cjs/plugins/deploy/platforms/node.js +1 -1
  25. package/dist/cjs/plugins/deploy/platforms/vercel.js +1 -1
  26. package/dist/cjs/plugins/serverBuild.js +2 -2
  27. package/dist/cjs/utils/createServer.js +1 -1
  28. package/dist/esm/builder/builder-rspack/adapterCopy.js +166 -0
  29. package/dist/esm/builder/builder-rspack/index.js +34 -0
  30. package/dist/esm/builder/builder-webpack/adapterModern.js +29 -0
  31. package/dist/esm/builder/builder-webpack/createCopyPattern.js +43 -0
  32. package/dist/esm/builder/builder-webpack/index.js +52 -0
  33. package/dist/esm/builder/generator/createBuilderProviderConfig.js +37 -0
  34. package/dist/esm/builder/generator/getBuilderEnvironments.js +81 -0
  35. package/dist/esm/builder/generator/index.js +93 -0
  36. package/dist/esm/builder/index.js +45 -0
  37. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +85 -0
  38. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +126 -0
  39. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +261 -0
  40. package/dist/esm/builder/shared/builderPlugins/index.js +3 -0
  41. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +51 -0
  42. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +37 -0
  43. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +314 -0
  44. package/dist/esm/builder/shared/bundlerPlugins/index.js +3 -0
  45. package/dist/esm/builder/shared/createCopyInfo.js +14 -0
  46. package/dist/esm/builder/shared/index.js +3 -0
  47. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +7 -0
  48. package/dist/esm/builder/shared/types.js +0 -0
  49. package/dist/esm/commands/build.js +140 -0
  50. package/dist/esm/commands/deploy.js +48 -0
  51. package/dist/esm/commands/dev.js +193 -0
  52. package/dist/esm/commands/index.js +411 -0
  53. package/dist/esm/commands/inspect.js +28 -0
  54. package/dist/esm/commands/serve.js +94 -0
  55. package/dist/esm/config/default.js +190 -0
  56. package/dist/esm/config/index.js +3 -0
  57. package/dist/esm/config/initialize/index.js +9 -0
  58. package/dist/esm/config/initialize/inits.js +89 -0
  59. package/dist/esm/config/legacy/createHtmlConfig.js +21 -0
  60. package/dist/esm/config/legacy/createOutputConfig.js +45 -0
  61. package/dist/esm/config/legacy/createSourceConfig.js +46 -0
  62. package/dist/esm/config/legacy/createToolsConfig.js +28 -0
  63. package/dist/esm/config/legacy/index.js +43 -0
  64. package/dist/esm/defineConfig.js +16 -0
  65. package/dist/esm/esm/esbuild-loader.mjs +20 -0
  66. package/dist/esm/esm/register-esm.mjs +66 -0
  67. package/dist/esm/esm/ts-node-loader.mjs +21 -0
  68. package/dist/esm/esm/utils.mjs +43 -0
  69. package/dist/esm/exports/server.js +4 -0
  70. package/dist/esm/hooks.js +34 -0
  71. package/dist/esm/index.js +246 -0
  72. package/dist/esm/locale/en.js +43 -0
  73. package/dist/esm/locale/index.js +12 -0
  74. package/dist/esm/locale/zh.js +43 -0
  75. package/dist/esm/plugins/analyze/constants.js +14 -0
  76. package/dist/esm/plugins/analyze/getBundleEntry.js +102 -0
  77. package/dist/esm/plugins/analyze/getFileSystemEntry.js +266 -0
  78. package/dist/esm/plugins/analyze/getHtmlTemplate.js +178 -0
  79. package/dist/esm/plugins/analyze/getServerRoutes.js +132 -0
  80. package/dist/esm/plugins/analyze/index.js +380 -0
  81. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +49 -0
  82. package/dist/esm/plugins/analyze/templates.js +6 -0
  83. package/dist/esm/plugins/analyze/utils.js +101 -0
  84. package/dist/esm/plugins/deploy/dependencies/index.js +615 -0
  85. package/dist/esm/plugins/deploy/dependencies/utils.js +421 -0
  86. package/dist/esm/plugins/deploy/exports.js +4 -0
  87. package/dist/esm/plugins/deploy/index.js +135 -0
  88. package/dist/esm/plugins/deploy/platforms/netlify-entry.js +11 -0
  89. package/dist/esm/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  90. package/dist/esm/plugins/deploy/platforms/netlify-handler.js +205 -0
  91. package/dist/esm/plugins/deploy/platforms/netlify.js +327 -0
  92. package/dist/esm/plugins/deploy/platforms/node-entry.js +108 -0
  93. package/dist/esm/plugins/deploy/platforms/node.js +161 -0
  94. package/dist/esm/plugins/deploy/platforms/platform.js +0 -0
  95. package/dist/esm/plugins/deploy/platforms/vercel-entry.js +11 -0
  96. package/dist/esm/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  97. package/dist/esm/plugins/deploy/platforms/vercel-handler.js +206 -0
  98. package/dist/esm/plugins/deploy/platforms/vercel.js +261 -0
  99. package/dist/esm/plugins/deploy/utils.js +47 -0
  100. package/dist/esm/plugins/initialize/index.js +119 -0
  101. package/dist/esm/plugins/serverBuild.js +87 -0
  102. package/dist/esm/types/config/deploy.js +0 -0
  103. package/dist/esm/types/config/dev.js +0 -0
  104. package/dist/esm/types/config/experiments.js +0 -0
  105. package/dist/esm/types/config/html.js +0 -0
  106. package/dist/esm/types/config/index.js +1 -0
  107. package/dist/esm/types/config/output.js +0 -0
  108. package/dist/esm/types/config/performance.js +0 -0
  109. package/dist/esm/types/config/security.js +0 -0
  110. package/dist/esm/types/config/source.js +0 -0
  111. package/dist/esm/types/config/testing.js +0 -0
  112. package/dist/esm/types/config/tools.js +0 -0
  113. package/dist/esm/types/hooks.js +0 -0
  114. package/dist/esm/types/index.js +3 -0
  115. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  116. package/dist/esm/types/legacyConfig/dev.js +0 -0
  117. package/dist/esm/types/legacyConfig/index.js +0 -0
  118. package/dist/esm/types/legacyConfig/output.js +0 -0
  119. package/dist/esm/types/legacyConfig/source.js +0 -0
  120. package/dist/esm/types/legacyConfig/testing.js +0 -0
  121. package/dist/esm/types/legacyConfig/tools.js +0 -0
  122. package/dist/esm/types/utils.js +0 -0
  123. package/dist/esm/utils/config.js +122 -0
  124. package/dist/esm/utils/createServer.js +58 -0
  125. package/dist/esm/utils/env.js +16 -0
  126. package/dist/esm/utils/generateWatchFiles.js +71 -0
  127. package/dist/esm/utils/getSelectedEntries.js +67 -0
  128. package/dist/esm/utils/loadPlugins.js +74 -0
  129. package/dist/esm/utils/printInstructions.js +32 -0
  130. package/dist/esm/utils/register.js +188 -0
  131. package/dist/esm/utils/restart.js +67 -0
  132. package/dist/esm/utils/routes.js +42 -0
  133. package/dist/esm/utils/types.js +0 -0
  134. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +67 -0
  135. package/dist/esm-node/builder/builder-rspack/index.js +12 -0
  136. package/dist/esm-node/builder/builder-webpack/adapterModern.js +26 -0
  137. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +41 -0
  138. package/dist/esm-node/builder/builder-webpack/index.js +20 -0
  139. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +44 -0
  140. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +60 -0
  141. package/dist/esm-node/builder/generator/index.js +36 -0
  142. package/dist/esm-node/builder/index.js +11 -0
  143. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +48 -0
  144. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +60 -0
  145. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +151 -0
  146. package/dist/esm-node/builder/shared/builderPlugins/index.js +3 -0
  147. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -0
  148. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +31 -0
  149. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +228 -0
  150. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +3 -0
  151. package/dist/esm-node/builder/shared/createCopyInfo.js +14 -0
  152. package/dist/esm-node/builder/shared/index.js +3 -0
  153. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +7 -0
  154. package/dist/esm-node/builder/shared/types.js +0 -0
  155. package/dist/esm-node/commands/build.js +64 -0
  156. package/dist/esm-node/commands/deploy.js +12 -0
  157. package/dist/esm-node/commands/dev.js +105 -0
  158. package/dist/esm-node/commands/index.js +92 -0
  159. package/dist/esm-node/commands/inspect.js +15 -0
  160. package/dist/esm-node/commands/serve.js +52 -0
  161. package/dist/esm-node/config/default.js +197 -0
  162. package/dist/esm-node/config/index.js +3 -0
  163. package/dist/esm-node/config/initialize/index.js +9 -0
  164. package/dist/esm-node/config/initialize/inits.js +79 -0
  165. package/dist/esm-node/config/legacy/createHtmlConfig.js +21 -0
  166. package/dist/esm-node/config/legacy/createOutputConfig.js +45 -0
  167. package/dist/esm-node/config/legacy/createSourceConfig.js +29 -0
  168. package/dist/esm-node/config/legacy/createToolsConfig.js +28 -0
  169. package/dist/esm-node/config/legacy/index.js +43 -0
  170. package/dist/esm-node/defineConfig.js +13 -0
  171. package/dist/esm-node/esm/esbuild-loader.mjs +20 -0
  172. package/dist/esm-node/esm/register-esm.mjs +66 -0
  173. package/dist/esm-node/esm/ts-node-loader.mjs +21 -0
  174. package/dist/esm-node/esm/utils.mjs +43 -0
  175. package/dist/esm-node/exports/server.js +4 -0
  176. package/dist/esm-node/hooks.js +34 -0
  177. package/dist/esm-node/index.js +131 -0
  178. package/dist/esm-node/locale/en.js +43 -0
  179. package/dist/esm-node/locale/index.js +12 -0
  180. package/dist/esm-node/locale/zh.js +43 -0
  181. package/dist/esm-node/plugins/analyze/constants.js +14 -0
  182. package/dist/esm-node/plugins/analyze/getBundleEntry.js +61 -0
  183. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +106 -0
  184. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +74 -0
  185. package/dist/esm-node/plugins/analyze/getServerRoutes.js +132 -0
  186. package/dist/esm-node/plugins/analyze/index.js +166 -0
  187. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +47 -0
  188. package/dist/esm-node/plugins/analyze/templates.js +24 -0
  189. package/dist/esm-node/plugins/analyze/utils.js +68 -0
  190. package/dist/esm-node/plugins/deploy/dependencies/index.js +202 -0
  191. package/dist/esm-node/plugins/deploy/dependencies/utils.js +137 -0
  192. package/dist/esm-node/plugins/deploy/exports.js +4 -0
  193. package/dist/esm-node/plugins/deploy/index.js +44 -0
  194. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.js +11 -0
  195. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  196. package/dist/esm-node/plugins/deploy/platforms/netlify-handler.js +71 -0
  197. package/dist/esm-node/plugins/deploy/platforms/netlify.js +117 -0
  198. package/dist/esm-node/plugins/deploy/platforms/node-entry.js +44 -0
  199. package/dist/esm-node/plugins/deploy/platforms/node.js +72 -0
  200. package/dist/esm-node/plugins/deploy/platforms/platform.js +0 -0
  201. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.js +11 -0
  202. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  203. package/dist/esm-node/plugins/deploy/platforms/vercel-handler.js +72 -0
  204. package/dist/esm-node/plugins/deploy/platforms/vercel.js +129 -0
  205. package/dist/esm-node/plugins/deploy/utils.js +44 -0
  206. package/dist/esm-node/plugins/initialize/index.js +84 -0
  207. package/dist/esm-node/plugins/serverBuild.js +58 -0
  208. package/dist/esm-node/types/config/deploy.js +0 -0
  209. package/dist/esm-node/types/config/dev.js +0 -0
  210. package/dist/esm-node/types/config/experiments.js +0 -0
  211. package/dist/esm-node/types/config/html.js +0 -0
  212. package/dist/esm-node/types/config/index.js +1 -0
  213. package/dist/esm-node/types/config/output.js +0 -0
  214. package/dist/esm-node/types/config/performance.js +0 -0
  215. package/dist/esm-node/types/config/security.js +0 -0
  216. package/dist/esm-node/types/config/source.js +0 -0
  217. package/dist/esm-node/types/config/testing.js +0 -0
  218. package/dist/esm-node/types/config/tools.js +0 -0
  219. package/dist/esm-node/types/hooks.js +0 -0
  220. package/dist/esm-node/types/index.js +3 -0
  221. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  222. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  223. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  224. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  225. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  226. package/dist/esm-node/types/legacyConfig/testing.js +0 -0
  227. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  228. package/dist/esm-node/types/utils.js +0 -0
  229. package/dist/esm-node/utils/config.js +49 -0
  230. package/dist/esm-node/utils/createServer.js +26 -0
  231. package/dist/esm-node/utils/env.js +16 -0
  232. package/dist/esm-node/utils/generateWatchFiles.js +30 -0
  233. package/dist/esm-node/utils/getSelectedEntries.js +34 -0
  234. package/dist/esm-node/utils/loadPlugins.js +22 -0
  235. package/dist/esm-node/utils/printInstructions.js +11 -0
  236. package/dist/esm-node/utils/register.js +96 -0
  237. package/dist/esm-node/utils/restart.js +22 -0
  238. package/dist/esm-node/utils/routes.js +21 -0
  239. package/dist/esm-node/utils/types.js +0 -0
  240. package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +1 -1
  241. package/dist/types/builder/generator/index.d.ts +2 -2
  242. package/dist/types/builder/shared/builderPlugins/index.d.ts +0 -1
  243. package/dist/types/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts +1 -1
  244. package/dist/types/builder/shared/bundlerPlugins/HtmlBottomTemplate.d.ts +1 -1
  245. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +1 -1
  246. package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +1 -1
  247. package/dist/types/builder/shared/types.d.ts +1 -1
  248. package/dist/types/commands/build.d.ts +1 -1
  249. package/dist/types/commands/dev.d.ts +1 -1
  250. package/dist/types/commands/inspect.d.ts +1 -1
  251. package/dist/types/config/default.d.ts +1 -1
  252. package/dist/types/index.d.ts +1 -1
  253. package/dist/types/plugins/analyze/getBundleEntry.d.ts +1 -1
  254. package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +1 -1
  255. package/dist/types/plugins/deploy/dependencies/index.d.ts +1 -1
  256. package/dist/types/plugins/deploy/dependencies/utils.d.ts +1 -1
  257. package/dist/types/plugins/initialize/index.d.ts +1 -1
  258. package/dist/types/plugins/serverBuild.d.ts +1 -1
  259. package/dist/types/types/config/index.d.ts +8 -8
  260. package/dist/types/types/config/output.d.ts +1 -1
  261. package/dist/types/types/config/tools.d.ts +3 -3
  262. package/dist/types/types/hooks.d.ts +2 -2
  263. package/dist/types/types/index.d.ts +2 -2
  264. package/dist/types/types/legacyConfig/index.d.ts +3 -3
  265. package/dist/types/types/legacyConfig/tools.d.ts +1 -1
  266. package/dist/types/utils/printInstructions.d.ts +1 -1
  267. package/package.json +20 -20
  268. package/dist/cjs/builder/shared/builderPlugins/adapterWorker.js +0 -51
  269. package/dist/types/builder/shared/builderPlugins/adapterWorker.d.ts +0 -2
@@ -0,0 +1,161 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "node:path";
4
+ import { DEFAULT_SERVER_CONFIG, ROUTE_SPEC_FILE, chalk, fs as fse } from "@modern-js/utils";
5
+ import { handleDependencies } from "../dependencies";
6
+ import { genPluginImportsCode, serverAppContenxtTemplate } from "../utils";
7
+ var createNodePreset = function(appContext, config) {
8
+ var appDirectory = appContext.appDirectory, distDirectory = appContext.distDirectory, serverPlugins = appContext.serverPlugins, moduleType = appContext.moduleType;
9
+ var isEsmProject = moduleType === "module";
10
+ var plugins = serverPlugins.map(function(plugin) {
11
+ return plugin.name;
12
+ });
13
+ var outputDirectory = path.join(appDirectory, ".output");
14
+ var staticDirectory = path.join(outputDirectory, "static");
15
+ var entryFilePath = path.join(outputDirectory, "index.js");
16
+ return {
17
+ prepare: function prepare() {
18
+ return _async_to_generator(function() {
19
+ return _ts_generator(this, function(_state) {
20
+ switch (_state.label) {
21
+ case 0:
22
+ return [
23
+ 4,
24
+ fse.remove(outputDirectory)
25
+ ];
26
+ case 1:
27
+ _state.sent();
28
+ return [
29
+ 2
30
+ ];
31
+ }
32
+ });
33
+ })();
34
+ },
35
+ writeOutput: function writeOutput() {
36
+ return _async_to_generator(function() {
37
+ return _ts_generator(this, function(_state) {
38
+ switch (_state.label) {
39
+ case 0:
40
+ return [
41
+ 4,
42
+ fse.copy(distDirectory, outputDirectory)
43
+ ];
44
+ case 1:
45
+ _state.sent();
46
+ return [
47
+ 2
48
+ ];
49
+ }
50
+ });
51
+ })();
52
+ },
53
+ genEntry: function genEntry() {
54
+ return _async_to_generator(function() {
55
+ var _config_bff, serverConfig, pluginImportCode, dynamicProdOptions, pluginsCode, entryCode, serverAppContext, cjsEntryFilePath;
56
+ return _ts_generator(this, function(_state) {
57
+ switch (_state.label) {
58
+ case 0:
59
+ serverConfig = {
60
+ server: {
61
+ port: 8080
62
+ },
63
+ bff: {
64
+ prefix: config === null || config === void 0 ? void 0 : (_config_bff = config.bff) === null || _config_bff === void 0 ? void 0 : _config_bff.prefix
65
+ },
66
+ output: {
67
+ distPath: {
68
+ root: "."
69
+ }
70
+ }
71
+ };
72
+ pluginImportCode = genPluginImportsCode(plugins || []);
73
+ dynamicProdOptions = {
74
+ config: serverConfig,
75
+ serverConfigFile: DEFAULT_SERVER_CONFIG
76
+ };
77
+ pluginsCode = "[".concat(plugins.map(function(plugin, index) {
78
+ return "plugin_".concat(index, "()");
79
+ }).join(","), "]");
80
+ return [
81
+ 4,
82
+ fse.readFile(path.join(__dirname, "./node-entry.js"))
83
+ ];
84
+ case 1:
85
+ entryCode = _state.sent().toString();
86
+ serverAppContext = serverAppContenxtTemplate(appContext);
87
+ entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", '"'.concat(ROUTE_SPEC_FILE, '"')).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_plugins", pluginsCode).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
88
+ if (!isEsmProject)
89
+ return [
90
+ 3,
91
+ 4
92
+ ];
93
+ cjsEntryFilePath = path.join(outputDirectory, "index.cjs");
94
+ return [
95
+ 4,
96
+ fse.writeFile(cjsEntryFilePath, entryCode)
97
+ ];
98
+ case 2:
99
+ _state.sent();
100
+ return [
101
+ 4,
102
+ fse.writeFile(entryFilePath, "import('./index.cjs');")
103
+ ];
104
+ case 3:
105
+ _state.sent();
106
+ return [
107
+ 3,
108
+ 6
109
+ ];
110
+ case 4:
111
+ return [
112
+ 4,
113
+ fse.writeFile(entryFilePath, entryCode)
114
+ ];
115
+ case 5:
116
+ _state.sent();
117
+ _state.label = 6;
118
+ case 6:
119
+ return [
120
+ 2
121
+ ];
122
+ }
123
+ });
124
+ })();
125
+ },
126
+ end: function end() {
127
+ return _async_to_generator(function() {
128
+ var filter;
129
+ return _ts_generator(this, function(_state) {
130
+ switch (_state.label) {
131
+ case 0:
132
+ console.log("Static directory:", chalk.blue(path.relative(appDirectory, staticDirectory)));
133
+ console.log("You can preview this build by", chalk.blue("node .output/index"));
134
+ filter = function(filePath) {
135
+ return !filePath.startsWith(staticDirectory);
136
+ };
137
+ return [
138
+ 4,
139
+ handleDependencies({
140
+ appDir: appDirectory,
141
+ serverRootDir: outputDirectory,
142
+ includeEntries: [
143
+ require.resolve("@modern-js/prod-server")
144
+ ],
145
+ entryFilter: filter
146
+ })
147
+ ];
148
+ case 1:
149
+ _state.sent();
150
+ return [
151
+ 2
152
+ ];
153
+ }
154
+ });
155
+ })();
156
+ }
157
+ };
158
+ };
159
+ export {
160
+ createNodePreset
161
+ };
File without changes
@@ -0,0 +1,11 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+ var require_vercel_entry = __commonJS({
6
+ "src/plugins/deploy/platforms/vercel-entry.js"(exports, module) {
7
+ var handler = require("./vercel-handler.cjs").handler;
8
+ module.exports = handler;
9
+ }
10
+ });
11
+ export default require_vercel_entry();
@@ -0,0 +1,3 @@
1
+ import { handler } from './vercel-handler.cjs';
2
+
3
+ export default handler;
@@ -0,0 +1,206 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+ var require_vercel_handler = __commonJS({
6
+ "src/plugins/deploy/platforms/vercel-handler.cjs"(exports, module) {
7
+ var _async_to_generator = require("@swc/helpers/_/_async_to_generator");
8
+ var _object_spread = require("@swc/helpers/_/_object_spread");
9
+ var _ts_generator = require("@swc/helpers/_/_ts_generator");
10
+ var fs = require("node:fs/promises");
11
+ var path = require("node:path");
12
+ var createProdServer = require("@modern-js/prod-server").createProdServer;
13
+ p_genPluginImportsCode;
14
+ if (!process.env.NODE_ENV) {
15
+ process.env.NODE_ENV = "production";
16
+ }
17
+ var requestHandler = null;
18
+ var handlerCreationPromise = null;
19
+ function loadRoutes(routeFilepath) {
20
+ return _loadRoutes.apply(this, arguments);
21
+ }
22
+ function _loadRoutes() {
23
+ _loadRoutes = _async_to_generator._(function(routeFilepath) {
24
+ var content, routeSpec, error;
25
+ return _ts_generator._(this, function(_state) {
26
+ switch (_state.label) {
27
+ case 0:
28
+ _state.trys.push([
29
+ 0,
30
+ 3,
31
+ ,
32
+ 4
33
+ ]);
34
+ return [
35
+ 4,
36
+ fs.access(routeFilepath)
37
+ ];
38
+ case 1:
39
+ _state.sent();
40
+ return [
41
+ 4,
42
+ fs.readFile(routeFilepath, "utf-8")
43
+ ];
44
+ case 2:
45
+ content = _state.sent();
46
+ routeSpec = JSON.parse(content);
47
+ return [
48
+ 2,
49
+ routeSpec.routes || []
50
+ ];
51
+ case 3:
52
+ error = _state.sent();
53
+ console.warn("route.json not found or invalid, continuing with empty routes.");
54
+ return [
55
+ 2,
56
+ []
57
+ ];
58
+ case 4:
59
+ return [
60
+ 2
61
+ ];
62
+ }
63
+ });
64
+ });
65
+ return _loadRoutes.apply(this, arguments);
66
+ }
67
+ function initServer() {
68
+ return _initServer.apply(this, arguments);
69
+ }
70
+ function _initServer() {
71
+ _initServer = _async_to_generator._(function() {
72
+ var routeFilepath, routes, dynamicProdOptions, prodServerOptions, app;
73
+ return _ts_generator._(this, function(_state) {
74
+ switch (_state.label) {
75
+ case 0:
76
+ routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
77
+ return [
78
+ 4,
79
+ loadRoutes(routeFilepath)
80
+ ];
81
+ case 1:
82
+ routes = _state.sent();
83
+ dynamicProdOptions = p_dynamicProdOptions;
84
+ prodServerOptions = _object_spread._({
85
+ pwd: __dirname,
86
+ routes,
87
+ disableCustomHook: true,
88
+ appContext: {
89
+ sharedDirectory: p_sharedDirectory,
90
+ apiDirectory: p_apiDirectory,
91
+ lambdaDirectory: p_lambdaDirectory
92
+ },
93
+ plugins: p_plugins
94
+ }, dynamicProdOptions);
95
+ return [
96
+ 4,
97
+ createProdServer(prodServerOptions)
98
+ ];
99
+ case 2:
100
+ app = _state.sent();
101
+ return [
102
+ 2,
103
+ app.getRequestListener()
104
+ ];
105
+ }
106
+ });
107
+ });
108
+ return _initServer.apply(this, arguments);
109
+ }
110
+ function createHandler() {
111
+ return _createHandler.apply(this, arguments);
112
+ }
113
+ function _createHandler() {
114
+ _createHandler = _async_to_generator._(function() {
115
+ return _ts_generator._(this, function(_state) {
116
+ switch (_state.label) {
117
+ case 0:
118
+ if (!handlerCreationPromise) {
119
+ handlerCreationPromise = _async_to_generator._(function() {
120
+ var error;
121
+ return _ts_generator._(this, function(_state2) {
122
+ switch (_state2.label) {
123
+ case 0:
124
+ _state2.trys.push([
125
+ 0,
126
+ 2,
127
+ ,
128
+ 3
129
+ ]);
130
+ return [
131
+ 4,
132
+ initServer()
133
+ ];
134
+ case 1:
135
+ requestHandler = _state2.sent();
136
+ return [
137
+ 3,
138
+ 3
139
+ ];
140
+ case 2:
141
+ error = _state2.sent();
142
+ console.error("Error creating server:", error);
143
+ process.exit(1);
144
+ return [
145
+ 3,
146
+ 3
147
+ ];
148
+ case 3:
149
+ return [
150
+ 2
151
+ ];
152
+ }
153
+ });
154
+ })();
155
+ }
156
+ return [
157
+ 4,
158
+ handlerCreationPromise
159
+ ];
160
+ case 1:
161
+ _state.sent();
162
+ return [
163
+ 2,
164
+ requestHandler
165
+ ];
166
+ }
167
+ });
168
+ });
169
+ return _createHandler.apply(this, arguments);
170
+ }
171
+ createHandler();
172
+ var handler = function() {
173
+ var _ref = _async_to_generator._(function(req, res) {
174
+ return _ts_generator._(this, function(_state) {
175
+ switch (_state.label) {
176
+ case 0:
177
+ if (!!requestHandler)
178
+ return [
179
+ 3,
180
+ 2
181
+ ];
182
+ return [
183
+ 4,
184
+ createHandler()
185
+ ];
186
+ case 1:
187
+ _state.sent();
188
+ _state.label = 2;
189
+ case 2:
190
+ return [
191
+ 2,
192
+ requestHandler(req, res)
193
+ ];
194
+ }
195
+ });
196
+ });
197
+ return function handler2(req, res) {
198
+ return _ref.apply(this, arguments);
199
+ };
200
+ }();
201
+ module.exports = {
202
+ handler
203
+ };
204
+ }
205
+ });
206
+ export default require_vercel_handler();
@@ -0,0 +1,261 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "node:path";
4
+ import { DEFAULT_SERVER_CONFIG, ROUTE_SPEC_FILE, fs as fse } from "@modern-js/utils";
5
+ import { isMainEntry } from "../../../utils/routes";
6
+ import { handleDependencies } from "../dependencies";
7
+ import { genPluginImportsCode, serverAppContenxtTemplate } from "../utils";
8
+ var createVercelPreset = function(appContext, modernConfig, needModernServer) {
9
+ var appDirectory = appContext.appDirectory, distDirectory = appContext.distDirectory, entrypoints = appContext.entrypoints, serverPlugins = appContext.serverPlugins, moduleType = appContext.moduleType;
10
+ var isEsmProject = moduleType === "module";
11
+ var plugins = serverPlugins.map(function(plugin) {
12
+ return plugin.name;
13
+ });
14
+ var vercelOutput = path.join(appDirectory, ".vercel");
15
+ var outputDirectory = path.join(vercelOutput, "output");
16
+ var funcsDirectory = path.join(outputDirectory, "functions", "index.func");
17
+ var entryFilePath = path.join(funcsDirectory, "index.js");
18
+ var handlerFilePath = path.join(funcsDirectory, "vercel-handler.cjs");
19
+ return {
20
+ prepare: function prepare() {
21
+ return _async_to_generator(function() {
22
+ return _ts_generator(this, function(_state) {
23
+ switch (_state.label) {
24
+ case 0:
25
+ return [
26
+ 4,
27
+ fse.remove(vercelOutput)
28
+ ];
29
+ case 1:
30
+ _state.sent();
31
+ return [
32
+ 2
33
+ ];
34
+ }
35
+ });
36
+ })();
37
+ },
38
+ writeOutput: function writeOutput() {
39
+ return _async_to_generator(function() {
40
+ var config, mainEntryName, staticDirectory, destHtmlDirectory, outputHtmlDirectory;
41
+ return _ts_generator(this, function(_state) {
42
+ switch (_state.label) {
43
+ case 0:
44
+ config = {
45
+ version: 3,
46
+ routes: [
47
+ {
48
+ src: "/static/(.*)",
49
+ headers: {
50
+ "cache-control": "s-maxage=31536000, immutable"
51
+ },
52
+ continue: true
53
+ },
54
+ {
55
+ handle: "filesystem"
56
+ }
57
+ ]
58
+ };
59
+ if (!needModernServer) {
60
+ mainEntryName = modernConfig.source.mainEntryName;
61
+ entrypoints.forEach(function(entry) {
62
+ var isMain = isMainEntry(entry.entryName, mainEntryName);
63
+ config.routes.push({
64
+ src: "/".concat(isMain ? "" : entry.entryName, "(?:/.*)?"),
65
+ headers: {
66
+ "cache-control": "s-maxage=0"
67
+ },
68
+ dest: "/html/".concat(entry.entryName, "/index.html")
69
+ });
70
+ });
71
+ } else {
72
+ config.routes.push({
73
+ src: "/(.*)",
74
+ dest: "/index"
75
+ });
76
+ }
77
+ return [
78
+ 4,
79
+ fse.ensureDir(outputDirectory)
80
+ ];
81
+ case 1:
82
+ _state.sent();
83
+ return [
84
+ 4,
85
+ fse.writeJSON(path.join(outputDirectory, "config.json"), config, {
86
+ spaces: 2
87
+ })
88
+ ];
89
+ case 2:
90
+ _state.sent();
91
+ staticDirectory = path.join(outputDirectory, "static/static");
92
+ return [
93
+ 4,
94
+ fse.copy(path.join(distDirectory, "static"), staticDirectory)
95
+ ];
96
+ case 3:
97
+ _state.sent();
98
+ if (!!needModernServer)
99
+ return [
100
+ 3,
101
+ 5
102
+ ];
103
+ destHtmlDirectory = path.join(distDirectory, "html");
104
+ outputHtmlDirectory = path.join(path.join(outputDirectory, "static"), "html");
105
+ return [
106
+ 4,
107
+ fse.copy(destHtmlDirectory, outputHtmlDirectory)
108
+ ];
109
+ case 4:
110
+ _state.sent();
111
+ return [
112
+ 3,
113
+ 9
114
+ ];
115
+ case 5:
116
+ return [
117
+ 4,
118
+ fse.ensureDir(funcsDirectory)
119
+ ];
120
+ case 6:
121
+ _state.sent();
122
+ return [
123
+ 4,
124
+ fse.copy(distDirectory, funcsDirectory, {
125
+ filter: function(src) {
126
+ var distStaticDirectory = path.join(distDirectory, "static");
127
+ return !src.includes(distStaticDirectory);
128
+ }
129
+ })
130
+ ];
131
+ case 7:
132
+ _state.sent();
133
+ return [
134
+ 4,
135
+ fse.writeJSON(path.join(funcsDirectory, ".vc-config.json"), {
136
+ runtime: "nodejs16.x",
137
+ handler: "index.js",
138
+ launcherType: "Nodejs",
139
+ shouldAddHelpers: false,
140
+ supportsResponseStreaming: true
141
+ })
142
+ ];
143
+ case 8:
144
+ _state.sent();
145
+ _state.label = 9;
146
+ case 9:
147
+ return [
148
+ 2
149
+ ];
150
+ }
151
+ });
152
+ })();
153
+ },
154
+ genEntry: function genEntry() {
155
+ return _async_to_generator(function() {
156
+ var _modernConfig_bff, serverConfig, pluginImportCode, dynamicProdOptions, pluginsCode, serverAppContext, handlerCode;
157
+ return _ts_generator(this, function(_state) {
158
+ switch (_state.label) {
159
+ case 0:
160
+ if (!needModernServer) {
161
+ return [
162
+ 2
163
+ ];
164
+ }
165
+ serverConfig = {
166
+ bff: {
167
+ prefix: modernConfig === null || modernConfig === void 0 ? void 0 : (_modernConfig_bff = modernConfig.bff) === null || _modernConfig_bff === void 0 ? void 0 : _modernConfig_bff.prefix
168
+ },
169
+ output: {
170
+ distPath: {
171
+ root: "."
172
+ }
173
+ }
174
+ };
175
+ pluginImportCode = genPluginImportsCode(plugins || []);
176
+ dynamicProdOptions = {
177
+ config: serverConfig,
178
+ serverConfigFile: DEFAULT_SERVER_CONFIG
179
+ };
180
+ pluginsCode = "[".concat(plugins.map(function(plugin, index) {
181
+ return "plugin_".concat(index, "()");
182
+ }).join(","), "]");
183
+ serverAppContext = serverAppContenxtTemplate(appContext);
184
+ return [
185
+ 4,
186
+ fse.readFile(path.join(__dirname, "./vercel-handler.js"))
187
+ ];
188
+ case 1:
189
+ handlerCode = _state.sent().toString();
190
+ handlerCode = handlerCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", '"'.concat(ROUTE_SPEC_FILE, '"')).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_plugins", pluginsCode).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
191
+ return [
192
+ 4,
193
+ fse.writeFile(handlerFilePath, handlerCode)
194
+ ];
195
+ case 2:
196
+ _state.sent();
197
+ if (!isEsmProject)
198
+ return [
199
+ 3,
200
+ 4
201
+ ];
202
+ return [
203
+ 4,
204
+ fse.copy(path.join(__dirname, "./vercel-entry.mjs"), entryFilePath)
205
+ ];
206
+ case 3:
207
+ _state.sent();
208
+ return [
209
+ 3,
210
+ 6
211
+ ];
212
+ case 4:
213
+ return [
214
+ 4,
215
+ fse.copy(path.join(__dirname, "./vercel-entry.js"), entryFilePath)
216
+ ];
217
+ case 5:
218
+ _state.sent();
219
+ _state.label = 6;
220
+ case 6:
221
+ return [
222
+ 2
223
+ ];
224
+ }
225
+ });
226
+ })();
227
+ },
228
+ end: function end() {
229
+ return _async_to_generator(function() {
230
+ return _ts_generator(this, function(_state) {
231
+ switch (_state.label) {
232
+ case 0:
233
+ if (!needModernServer) {
234
+ return [
235
+ 2
236
+ ];
237
+ }
238
+ return [
239
+ 4,
240
+ handleDependencies({
241
+ appDir: appDirectory,
242
+ serverRootDir: funcsDirectory,
243
+ includeEntries: [
244
+ require.resolve("@modern-js/prod-server")
245
+ ]
246
+ })
247
+ ];
248
+ case 1:
249
+ _state.sent();
250
+ return [
251
+ 2
252
+ ];
253
+ }
254
+ });
255
+ })();
256
+ }
257
+ };
258
+ };
259
+ export {
260
+ createVercelPreset
261
+ };
@@ -0,0 +1,47 @@
1
+ import path from "path";
2
+ import { ROUTE_SPEC_FILE, fs as fse, isDepExists } from "@modern-js/utils";
3
+ var serverAppContenxtTemplate = function(appContext) {
4
+ var appDirectory = appContext.appDirectory, sharedDirectory = appContext.sharedDirectory, apiDirectory = appContext.apiDirectory, lambdaDirectory = appContext.lambdaDirectory, metaName = appContext.metaName;
5
+ return {
6
+ sharedDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, sharedDirectory), '")'),
7
+ apiDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, apiDirectory), '")'),
8
+ lambdaDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, lambdaDirectory), '")'),
9
+ metaName
10
+ };
11
+ };
12
+ var getPluginsCode = function(plugins) {
13
+ return "[".concat(plugins.map(function(_, index) {
14
+ return "plugin_".concat(index, "()");
15
+ }).join(","), "]");
16
+ };
17
+ var genPluginImportsCode = function(plugins) {
18
+ return plugins.map(function(plugin, index) {
19
+ return "\n let plugin_".concat(index, " = require('").concat(plugin, "')\n plugin_").concat(index, " = plugin_").concat(index, ".default || plugin_").concat(index, "\n ");
20
+ }).join(";\n");
21
+ };
22
+ var getProjectUsage = function(appDirectory, distDirectory) {
23
+ var routeJSON = path.join(distDirectory, ROUTE_SPEC_FILE);
24
+ var routes = fse.readJSONSync(routeJSON).routes;
25
+ var useSSR = false;
26
+ var useAPI = false;
27
+ routes.forEach(function(route) {
28
+ if (route.isSSR) {
29
+ useSSR = true;
30
+ }
31
+ if (route.isApi) {
32
+ useAPI = true;
33
+ }
34
+ });
35
+ var useWebServer = isDepExists(appDirectory, "@modern-js/plugin-server");
36
+ return {
37
+ useSSR,
38
+ useAPI,
39
+ useWebServer
40
+ };
41
+ };
42
+ export {
43
+ genPluginImportsCode,
44
+ getPluginsCode,
45
+ getProjectUsage,
46
+ serverAppContenxtTemplate
47
+ };