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

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 (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
+ };