@modern-js/app-tools 2.49.3-alpha.13 → 2.49.3-alpha.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. package/dist/cjs/plugins/deploy/index copy.js +216 -0
  2. package/dist/cjs/plugins/deploy/index.js +13 -169
  3. package/dist/cjs/plugins/deploy/platforms/netlify.js +112 -64
  4. package/dist/cjs/plugins/deploy/platforms/netlifyEntry.js +60 -0
  5. package/dist/cjs/plugins/deploy/platforms/node.js +41 -18
  6. package/dist/cjs/plugins/deploy/platforms/vercel.js +103 -16
  7. package/dist/cjs/plugins/deploy/utils.js +10 -8
  8. package/dist/esm/plugins/deploy/index copy.js +367 -0
  9. package/dist/esm/plugins/deploy/index.js +17 -314
  10. package/dist/esm/plugins/deploy/platforms/netlify.js +203 -36
  11. package/dist/esm/plugins/deploy/platforms/netlifyEntry.js +202 -0
  12. package/dist/esm/plugins/deploy/platforms/node.js +100 -43
  13. package/dist/esm/plugins/deploy/platforms/vercel.js +203 -40
  14. package/dist/esm/plugins/deploy/utils.js +9 -3
  15. package/dist/esm-node/plugins/deploy/index copy.js +186 -0
  16. package/dist/esm-node/plugins/deploy/index.js +11 -157
  17. package/dist/esm-node/plugins/deploy/platforms/netlify.js +103 -65
  18. package/dist/esm-node/plugins/deploy/platforms/netlifyEntry.js +68 -0
  19. package/dist/esm-node/plugins/deploy/platforms/node.js +42 -19
  20. package/dist/esm-node/plugins/deploy/platforms/vercel.js +104 -17
  21. package/dist/esm-node/plugins/deploy/utils.js +9 -7
  22. package/dist/types/plugins/deploy/index copy.d.ts +4 -0
  23. package/dist/types/plugins/deploy/platforms/netlify.d.ts +2 -5
  24. package/dist/types/plugins/deploy/platforms/netlifyEntry.d.ts +2 -0
  25. package/dist/types/plugins/deploy/platforms/node.d.ts +2 -8
  26. package/dist/types/plugins/deploy/platforms/platform.d.ts +8 -4
  27. package/dist/types/plugins/deploy/platforms/vercel.d.ts +2 -8
  28. package/dist/types/plugins/deploy/utils.d.ts +7 -1
  29. package/package.json +8 -8
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ const fs = require("node:fs/promises");
3
+ const path = require("node:path");
4
+ const { createNetlifyFunction } = require("@modern-js/prod-server/netlify");
5
+ p_genPluginImportsCode;
6
+ if (!process.env.NODE_ENV) {
7
+ process.env.NODE_ENV = "production";
8
+ }
9
+ let requestHandler = null;
10
+ let handlerCreationPromise = null;
11
+ async function loadRoutes(routeFilepath) {
12
+ try {
13
+ await fs.access(routeFilepath);
14
+ const content = await fs.readFile(routeFilepath, "utf-8");
15
+ const routeSpec = JSON.parse(content);
16
+ return routeSpec.routes || [];
17
+ } catch (error) {
18
+ console.warn("route.json not found or invalid, continuing with empty routes.");
19
+ return [];
20
+ }
21
+ }
22
+ async function initServer() {
23
+ const routeFilepath = path.join(__dirname, p_ROUTE_SPEC_FILE);
24
+ const routes = await loadRoutes(routeFilepath);
25
+ const dynamicProdOptions = p_dynamicProdOptions;
26
+ const prodServerOptions = {
27
+ pwd: __dirname,
28
+ routes,
29
+ disableCustomHook: true,
30
+ appContext: {
31
+ sharedDirectory: p_sharedDirectory,
32
+ apiDirectory: p_apiDirectory,
33
+ lambdaDirectory: p_lambdaDirectory
34
+ },
35
+ ...dynamicProdOptions
36
+ };
37
+ const app = await createNetlifyFunction(prodServerOptions);
38
+ return app.getRequestListener();
39
+ }
40
+ async function createHandler() {
41
+ if (!handlerCreationPromise) {
42
+ handlerCreationPromise = (async () => {
43
+ try {
44
+ requestHandler = await initServer();
45
+ } catch (error) {
46
+ console.error("Error creating server:", error);
47
+ process.exit(1);
48
+ }
49
+ })();
50
+ }
51
+ await handlerCreationPromise;
52
+ return requestHandler;
53
+ }
54
+ createHandler();
55
+ module.exports = async (request, context) => {
56
+ if (!requestHandler) {
57
+ await createHandler();
58
+ }
59
+ return requestHandler(request, context);
60
+ };
@@ -28,32 +28,55 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
- genNodeEntry: () => genNodeEntry
31
+ createNodePreset: () => createNodePreset
32
32
  });
33
33
  module.exports = __toCommonJS(node_exports);
34
34
  var import_node_path = __toESM(require("node:path"));
35
35
  var import_utils = require("@modern-js/utils");
36
36
  var import_utils2 = require("../utils");
37
- async function genNodeEntry({ config, plugins, appContext }) {
38
- const defaultConfig = {
39
- server: {
40
- port: 8080
37
+ var import_dependencies = require("../dependencies");
38
+ const createNodePreset = (appContext, config) => {
39
+ const { appDirectory, distDirectory, serverInternalPlugins, sharedDirectory, apiDirectory, lambdaDirectory, metaName, entrypoints } = appContext;
40
+ const plugins = (0, import_utils.getInternalPlugins)(appDirectory, serverInternalPlugins);
41
+ const outputDirectory = import_node_path.default.join(appDirectory, ".output");
42
+ const entryFilePath = import_node_path.default.join(outputDirectory, "index.js");
43
+ return {
44
+ async prepare() {
45
+ await import_utils.fs.remove(outputDirectory);
41
46
  },
42
- output: {
43
- path: "."
47
+ async writeOutput() {
48
+ await import_utils.fs.copy(distDirectory, outputDirectory);
49
+ },
50
+ async genEntry() {
51
+ var _config_bff;
52
+ const serverConfig = {
53
+ server: {
54
+ port: 8080
55
+ },
56
+ bff: {
57
+ prefix: config === null || config === void 0 ? void 0 : (_config_bff = config.bff) === null || _config_bff === void 0 ? void 0 : _config_bff.prefix
58
+ },
59
+ output: {
60
+ path: "."
61
+ }
62
+ };
63
+ const pluginImportCode = (0, import_utils2.genPluginImportsCode)(plugins || []);
64
+ const dynamicProdOptions = {
65
+ config: serverConfig,
66
+ serverConfigFile: import_utils.DEFAULT_SERVER_CONFIG,
67
+ plugins
68
+ };
69
+ let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./nodeEntry.js"))).toString();
70
+ const serverAppContext = (0, import_utils2.serverAppContenxtTemplate)(appContext);
71
+ entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
72
+ await import_utils.fs.writeFile(entryFilePath, entryCode);
73
+ await (0, import_dependencies.handleDependencies)(appDirectory, outputDirectory, [
74
+ "@modern-js/prod-server"
75
+ ]);
44
76
  }
45
77
  };
46
- const pluginImportCode = (0, import_utils2.genPluginImportsCode)(plugins || []);
47
- const dynamicProdOptions = {
48
- config: config || defaultConfig,
49
- serverConfigFile: import_utils.DEFAULT_SERVER_CONFIG,
50
- plugins
51
- };
52
- let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./nodeEntry.js"))).toString();
53
- entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_sharedDirectory", appContext.sharedDirectory).replace("p_apiDirectory", appContext.apiDirectory).replace("p_lambdaDirectory", appContext.lambdaDirectory);
54
- return entryCode;
55
- }
78
+ };
56
79
  // Annotate the CommonJS export names for ESM import in node:
57
80
  0 && (module.exports = {
58
- genNodeEntry
81
+ createNodePreset
59
82
  });
@@ -28,29 +28,116 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var vercel_exports = {};
30
30
  __export(vercel_exports, {
31
- genVercelEntry: () => genVercelEntry
31
+ createVercelPreset: () => createVercelPreset
32
32
  });
33
33
  module.exports = __toCommonJS(vercel_exports);
34
34
  var import_node_path = __toESM(require("node:path"));
35
35
  var import_utils = require("@modern-js/utils");
36
+ var import_routes = require("../../../utils/routes");
36
37
  var import_utils2 = require("../utils");
37
- async function genVercelEntry({ config, plugins, appContext }) {
38
- const defaultConfig = {
39
- output: {
40
- path: "."
38
+ var import_dependencies = require("../dependencies");
39
+ const createVercelPreset = (appContext, config, needModernServer) => {
40
+ const { appDirectory, distDirectory, serverInternalPlugins, sharedDirectory, apiDirectory, lambdaDirectory, metaName, entrypoints } = appContext;
41
+ const plugins = (0, import_utils.getInternalPlugins)(appDirectory, serverInternalPlugins);
42
+ const vercelOutput = import_node_path.default.join(appDirectory, ".vercel");
43
+ const outputDirectory = import_node_path.default.join(vercelOutput, "output");
44
+ const funcsDirectory = import_node_path.default.join(outputDirectory, "functions", "index.func");
45
+ const entryFilePath = import_node_path.default.join(funcsDirectory, "index.js");
46
+ return {
47
+ async prepare() {
48
+ await import_utils.fs.remove(vercelOutput);
49
+ },
50
+ async writeOutput() {
51
+ const config2 = {
52
+ version: 3,
53
+ routes: [
54
+ {
55
+ src: "/static/(.*)",
56
+ headers: {
57
+ "cache-control": "s-maxage=31536000, immutable"
58
+ },
59
+ continue: true
60
+ },
61
+ {
62
+ handle: "filesystem"
63
+ }
64
+ ]
65
+ };
66
+ if (!needModernServer) {
67
+ const { source: { mainEntryName } } = config2;
68
+ entrypoints.forEach((entry) => {
69
+ const isMain = (0, import_routes.isMainEntry)(entry.entryName, mainEntryName);
70
+ config2.routes.push({
71
+ src: `/${isMain ? "" : entry.entryName}(?:/.*)?`,
72
+ headers: {
73
+ "cache-control": "s-maxage=0"
74
+ },
75
+ dest: `/html/${entry.entryName}/index.html`
76
+ });
77
+ });
78
+ } else {
79
+ config2.routes.push({
80
+ src: "/(.*)",
81
+ dest: `/index`
82
+ });
83
+ }
84
+ await import_utils.fs.ensureDir(outputDirectory);
85
+ await import_utils.fs.writeJSON(import_node_path.default.join(outputDirectory, "config.json"), config2, {
86
+ spaces: 2
87
+ });
88
+ const staticDirectory = import_node_path.default.join(outputDirectory, "static/static");
89
+ await import_utils.fs.copy(import_node_path.default.join(distDirectory, "static"), staticDirectory);
90
+ if (!needModernServer) {
91
+ const destHtmlDirectory = import_node_path.default.join(distDirectory, "html");
92
+ const outputHtmlDirectory = import_node_path.default.join(import_node_path.default.join(outputDirectory, "static"), "html");
93
+ await import_utils.fs.copy(destHtmlDirectory, outputHtmlDirectory);
94
+ } else {
95
+ await import_utils.fs.ensureDir(funcsDirectory);
96
+ await import_utils.fs.copy(distDirectory, funcsDirectory, {
97
+ filter: (src) => {
98
+ const distStaticDirectory = import_node_path.default.join(distDirectory, "static");
99
+ return !src.includes(distStaticDirectory);
100
+ }
101
+ });
102
+ await import_utils.fs.writeJSON(import_node_path.default.join(funcsDirectory, ".vc-config.json"), {
103
+ runtime: "nodejs16.x",
104
+ handler: "index.js",
105
+ launcherType: "Nodejs",
106
+ shouldAddHelpers: false,
107
+ supportsResponseStreaming: true
108
+ });
109
+ }
110
+ },
111
+ async genEntry() {
112
+ var _config_bff;
113
+ if (!needModernServer) {
114
+ return;
115
+ }
116
+ const serverConfig = {
117
+ bff: {
118
+ prefix: config === null || config === void 0 ? void 0 : (_config_bff = config.bff) === null || _config_bff === void 0 ? void 0 : _config_bff.prefix
119
+ },
120
+ output: {
121
+ path: "."
122
+ }
123
+ };
124
+ const pluginImportCode = (0, import_utils2.genPluginImportsCode)(plugins || []);
125
+ const dynamicProdOptions = {
126
+ config: serverConfig,
127
+ serverConfigFile: import_utils.DEFAULT_SERVER_CONFIG,
128
+ plugins
129
+ };
130
+ const serverAppContext = (0, import_utils2.serverAppContenxtTemplate)(appContext);
131
+ let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./vercelEntry.js"))).toString();
132
+ entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
133
+ await import_utils.fs.writeFile(entryFilePath, entryCode);
134
+ await (0, import_dependencies.handleDependencies)(appDirectory, funcsDirectory, [
135
+ "@modern-js/prod-server"
136
+ ]);
41
137
  }
42
138
  };
43
- const pluginImportCode = (0, import_utils2.genPluginImportsCode)(plugins || []);
44
- const dynamicProdOptions = {
45
- config: config || defaultConfig,
46
- serverConfigFile: import_utils.DEFAULT_SERVER_CONFIG,
47
- plugins
48
- };
49
- let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./vercelEntry.js"))).toString();
50
- entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_sharedDirectory", appContext.sharedDirectory).replace("p_apiDirectory", appContext.apiDirectory).replace("p_lambdaDirectory", appContext.lambdaDirectory);
51
- return entryCode;
52
- }
139
+ };
53
140
  // Annotate the CommonJS export names for ESM import in node:
54
141
  0 && (module.exports = {
55
- genVercelEntry
142
+ createVercelPreset
56
143
  });
@@ -34,7 +34,7 @@ __export(utils_exports, {
34
34
  getPluginsCode: () => getPluginsCode,
35
35
  getProjectUsage: () => getProjectUsage,
36
36
  linkPackage: () => linkPackage,
37
- severAppContextTemplate: () => severAppContextTemplate,
37
+ serverAppContenxtTemplate: () => serverAppContenxtTemplate,
38
38
  writePackage: () => writePackage
39
39
  });
40
40
  module.exports = __toCommonJS(utils_exports);
@@ -42,12 +42,14 @@ var import_path = __toESM(require("path"));
42
42
  var import_node_os = __toESM(require("node:os"));
43
43
  var import_utils = require("@modern-js/utils");
44
44
  var import_mlly = require("mlly");
45
- const severAppContextTemplate = (serverAppContext) => {
46
- return `{
47
- sharedDirectory: ${serverAppContext.sharedDirectory},
48
- apiDirectory: ${serverAppContext.apiDirectory},
49
- lambdaDirectory: ${serverAppContext.lambdaDirectory},
50
- }`;
45
+ const serverAppContenxtTemplate = (appContext) => {
46
+ const { appDirectory, sharedDirectory, apiDirectory, lambdaDirectory, metaName } = appContext;
47
+ return {
48
+ sharedDirectory: `path.join(__dirname, "${import_path.default.relative(appDirectory, sharedDirectory)}")`,
49
+ apiDirectory: `path.join(__dirname, "${import_path.default.relative(appDirectory, apiDirectory)}")`,
50
+ lambdaDirectory: `path.join(__dirname, "${import_path.default.relative(appDirectory, lambdaDirectory)}")`,
51
+ metaName
52
+ };
51
53
  };
52
54
  const getPluginsCode = (plugins) => `[${plugins.map((_, index) => `plugin_${index}()`).join(",")}]`;
53
55
  const genPluginImportsCode = (plugins) => {
@@ -145,6 +147,6 @@ const linkPackage = async (from, to, projectRootDir) => {
145
147
  getPluginsCode,
146
148
  getProjectUsage,
147
149
  linkPackage,
148
- severAppContextTemplate,
150
+ serverAppContenxtTemplate,
149
151
  writePackage
150
152
  });
@@ -0,0 +1,367 @@
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 "path";
4
+ import { fs as fse, getInternalPlugins } from "@modern-js/utils";
5
+ import { provider } from "std-env";
6
+ import { isMainEntry } from "../../utils/routes";
7
+ import { getProjectUsage } from "./utils";
8
+ import { handleDependencies } from "./dependencies";
9
+ function index_copy_default() {
10
+ return {
11
+ name: "@modern-js/plugin-deploy",
12
+ pre: [
13
+ "@modern-js/plugin-bff",
14
+ "@modern-js/plugin-server"
15
+ ],
16
+ setup: function(api) {
17
+ var deployTarget = process.env.MODERNJS_DEPLOY || provider || "node";
18
+ return {
19
+ beforeDeploy: function beforeDeploy() {
20
+ return _async_to_generator(function() {
21
+ var appContext, modernConfig, mainEntryName, appDirectory, distDirectory, serverInternalPlugins, sharedDirectory, apiDirectory, lambdaDirectory, metaName, entrypoints, _getProjectUsage, useSSR, useAPI, useWebServer, needModernServer, outputDirectory, funcsDirectory, staticDirectory, netlifyOutput, routes, redirectContent, redirectFilePath, vercelOutput, config, destHtmlDirectory, outputHtmlDirectory, plugins, serverAppContext, code, genNodeEntry, genVercelEntry, genNetlifyEntry, entryFilePath;
22
+ return _ts_generator(this, function(_state) {
23
+ switch (_state.label) {
24
+ case 0:
25
+ appContext = api.useAppContext();
26
+ modernConfig = api.useResolvedConfigContext();
27
+ mainEntryName = modernConfig.source.mainEntryName;
28
+ appDirectory = appContext.appDirectory, distDirectory = appContext.distDirectory, serverInternalPlugins = appContext.serverInternalPlugins, sharedDirectory = appContext.sharedDirectory, apiDirectory = appContext.apiDirectory, lambdaDirectory = appContext.lambdaDirectory, metaName = appContext.metaName, entrypoints = appContext.entrypoints;
29
+ _getProjectUsage = getProjectUsage(appDirectory, distDirectory), useSSR = _getProjectUsage.useSSR, useAPI = _getProjectUsage.useAPI, useWebServer = _getProjectUsage.useWebServer;
30
+ needModernServer = useSSR || useAPI || useWebServer;
31
+ outputDirectory = path.join(appDirectory, ".output");
32
+ funcsDirectory = outputDirectory;
33
+ staticDirectory = path.join(outputDirectory, "static");
34
+ if (!(deployTarget === "node"))
35
+ return [
36
+ 3,
37
+ 3
38
+ ];
39
+ return [
40
+ 4,
41
+ fse.remove(outputDirectory)
42
+ ];
43
+ case 1:
44
+ _state.sent();
45
+ return [
46
+ 4,
47
+ fse.copy(distDirectory, outputDirectory)
48
+ ];
49
+ case 2:
50
+ _state.sent();
51
+ _state.label = 3;
52
+ case 3:
53
+ if (!(deployTarget === "netlify"))
54
+ return [
55
+ 3,
56
+ 8
57
+ ];
58
+ netlifyOutput = path.join(appDirectory, ".netlify");
59
+ funcsDirectory = path.join(netlifyOutput, "functions");
60
+ routes = [];
61
+ if (!needModernServer) {
62
+ entrypoints.forEach(function(entry) {
63
+ var isMain = isMainEntry(entry.entryName, mainEntryName);
64
+ routes.push({
65
+ src: "/".concat(isMain ? "" : "".concat(entry.entryName, "/"), "*"),
66
+ dest: "/html/".concat(entry.entryName, "/index.html"),
67
+ status: 200
68
+ });
69
+ });
70
+ } else {
71
+ routes.push({
72
+ src: "/*",
73
+ dest: "/.netlify/functions/index",
74
+ status: 200
75
+ });
76
+ throw new Error("Currently on the Netlify platform, only CSR projects are supported, Support for SSR and BFF projects will be available later");
77
+ }
78
+ console.log("routes", routes, needModernServer);
79
+ redirectContent = routes.map(function(route) {
80
+ return "".concat(route.src, " ").concat(route.dest, " ").concat(route.status);
81
+ }).join("\n");
82
+ console.log("redirectContent", redirectContent);
83
+ return [
84
+ 4,
85
+ fse.remove(outputDirectory)
86
+ ];
87
+ case 4:
88
+ _state.sent();
89
+ return [
90
+ 4,
91
+ fse.ensureDir(funcsDirectory)
92
+ ];
93
+ case 5:
94
+ _state.sent();
95
+ return [
96
+ 4,
97
+ fse.copy(distDirectory, funcsDirectory, {
98
+ filter: function(src) {
99
+ var distStaticDirectory = path.join(distDirectory, "static");
100
+ return !src.includes(distStaticDirectory);
101
+ }
102
+ })
103
+ ];
104
+ case 6:
105
+ _state.sent();
106
+ redirectFilePath = path.join(distDirectory, "_redirects");
107
+ return [
108
+ 4,
109
+ fse.writeFile(redirectFilePath, redirectContent)
110
+ ];
111
+ case 7:
112
+ _state.sent();
113
+ _state.label = 8;
114
+ case 8:
115
+ if (!(deployTarget === "vercel"))
116
+ return [
117
+ 3,
118
+ 18
119
+ ];
120
+ vercelOutput = path.join(appDirectory, ".vercel");
121
+ return [
122
+ 4,
123
+ fse.remove(vercelOutput)
124
+ ];
125
+ case 9:
126
+ _state.sent();
127
+ outputDirectory = path.join(vercelOutput, "output");
128
+ config = {
129
+ version: 3,
130
+ routes: [
131
+ {
132
+ src: "/static/(.*)",
133
+ headers: {
134
+ "cache-control": "s-maxage=31536000, immutable"
135
+ },
136
+ continue: true
137
+ },
138
+ {
139
+ handle: "filesystem"
140
+ }
141
+ ]
142
+ };
143
+ if (!needModernServer) {
144
+ entrypoints.forEach(function(entry) {
145
+ var isMain = isMainEntry(entry.entryName, mainEntryName);
146
+ config.routes.push({
147
+ src: "/".concat(isMain ? "" : entry.entryName, "(?:/.*)?"),
148
+ headers: {
149
+ "cache-control": "s-maxage=0"
150
+ },
151
+ dest: "/html/".concat(entry.entryName, "/index.html")
152
+ });
153
+ });
154
+ } else {
155
+ config.routes.push({
156
+ src: "/(.*)",
157
+ dest: "/index"
158
+ });
159
+ }
160
+ return [
161
+ 4,
162
+ fse.ensureDir(outputDirectory)
163
+ ];
164
+ case 10:
165
+ _state.sent();
166
+ return [
167
+ 4,
168
+ fse.writeJSON(path.join(outputDirectory, "config.json"), config, {
169
+ spaces: 2
170
+ })
171
+ ];
172
+ case 11:
173
+ _state.sent();
174
+ staticDirectory = path.join(outputDirectory, "static/static");
175
+ return [
176
+ 4,
177
+ fse.copy(path.join(distDirectory, "static"), staticDirectory)
178
+ ];
179
+ case 12:
180
+ _state.sent();
181
+ if (!!needModernServer)
182
+ return [
183
+ 3,
184
+ 14
185
+ ];
186
+ destHtmlDirectory = path.join(distDirectory, "html");
187
+ outputHtmlDirectory = path.join(path.join(outputDirectory, "static"), "html");
188
+ return [
189
+ 4,
190
+ fse.copy(destHtmlDirectory, outputHtmlDirectory)
191
+ ];
192
+ case 13:
193
+ _state.sent();
194
+ return [
195
+ 3,
196
+ 18
197
+ ];
198
+ case 14:
199
+ funcsDirectory = path.join(outputDirectory, "functions", "index.func");
200
+ return [
201
+ 4,
202
+ fse.ensureDir(funcsDirectory)
203
+ ];
204
+ case 15:
205
+ _state.sent();
206
+ return [
207
+ 4,
208
+ fse.copy(distDirectory, funcsDirectory, {
209
+ filter: function(src) {
210
+ var distStaticDirectory = path.join(distDirectory, "static");
211
+ return !src.includes(distStaticDirectory);
212
+ }
213
+ })
214
+ ];
215
+ case 16:
216
+ _state.sent();
217
+ return [
218
+ 4,
219
+ fse.writeJSON(path.join(funcsDirectory, ".vc-config.json"), {
220
+ runtime: "nodejs16.x",
221
+ handler: "index.js",
222
+ launcherType: "Nodejs",
223
+ shouldAddHelpers: false,
224
+ supportsResponseStreaming: true
225
+ })
226
+ ];
227
+ case 17:
228
+ _state.sent();
229
+ _state.label = 18;
230
+ case 18:
231
+ plugins = getInternalPlugins(appDirectory, serverInternalPlugins);
232
+ serverAppContext = {
233
+ sharedDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, sharedDirectory), '")'),
234
+ apiDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, apiDirectory), '")'),
235
+ lambdaDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, lambdaDirectory), '")'),
236
+ metaName
237
+ };
238
+ console.log("serverAppContext", serverAppContext);
239
+ code = "";
240
+ console.log("deployTarget111111111", deployTarget);
241
+ switch (deployTarget) {
242
+ case "node":
243
+ return [
244
+ 3,
245
+ 19
246
+ ];
247
+ case "vercel":
248
+ return [
249
+ 3,
250
+ 22
251
+ ];
252
+ case "netlify":
253
+ return [
254
+ 3,
255
+ 25
256
+ ];
257
+ }
258
+ return [
259
+ 3,
260
+ 28
261
+ ];
262
+ case 19:
263
+ return [
264
+ 4,
265
+ import("./platforms/node")
266
+ ];
267
+ case 20:
268
+ genNodeEntry = _state.sent().genNodeEntry;
269
+ return [
270
+ 4,
271
+ genNodeEntry({
272
+ plugins,
273
+ config: modernConfig,
274
+ appContext: serverAppContext
275
+ })
276
+ ];
277
+ case 21:
278
+ code = _state.sent();
279
+ return [
280
+ 3,
281
+ 29
282
+ ];
283
+ case 22:
284
+ return [
285
+ 4,
286
+ import("./platforms/vercel")
287
+ ];
288
+ case 23:
289
+ genVercelEntry = _state.sent().genVercelEntry;
290
+ return [
291
+ 4,
292
+ genVercelEntry({
293
+ plugins,
294
+ config: modernConfig,
295
+ appContext: serverAppContext
296
+ })
297
+ ];
298
+ case 24:
299
+ code = _state.sent();
300
+ return [
301
+ 3,
302
+ 29
303
+ ];
304
+ case 25:
305
+ return [
306
+ 4,
307
+ import("./platforms/netlify")
308
+ ];
309
+ case 26:
310
+ genNetlifyEntry = _state.sent().genNetlifyEntry;
311
+ return [
312
+ 4,
313
+ genNetlifyEntry({
314
+ plugins,
315
+ config: modernConfig,
316
+ appContext: serverAppContext
317
+ })
318
+ ];
319
+ case 27:
320
+ code = _state.sent();
321
+ return [
322
+ 3,
323
+ 29
324
+ ];
325
+ case 28:
326
+ {
327
+ code = 'throw new Error("unknown deploy target, MODERNJS_DEPLOY should be set");';
328
+ }
329
+ _state.label = 29;
330
+ case 29:
331
+ entryFilePath = path.join(funcsDirectory, "index.js");
332
+ if (!needModernServer)
333
+ return [
334
+ 3,
335
+ 32
336
+ ];
337
+ return [
338
+ 4,
339
+ fse.writeFile(entryFilePath, code)
340
+ ];
341
+ case 30:
342
+ _state.sent();
343
+ return [
344
+ 4,
345
+ handleDependencies(appDirectory, funcsDirectory, [
346
+ "@modern-js/prod-server"
347
+ ])
348
+ ];
349
+ case 31:
350
+ _state.sent();
351
+ _state.label = 32;
352
+ case 32:
353
+ return [
354
+ 2
355
+ ];
356
+ }
357
+ });
358
+ })();
359
+ }
360
+ };
361
+ }
362
+ };
363
+ }
364
+ ;
365
+ export {
366
+ index_copy_default as default
367
+ };