@edgeone/vite-core 0.0.1-beta.1
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.
- package/README.md +13 -0
- package/dist/bundler.d.ts +14 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +691 -0
- package/dist/bundler.js.map +1 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +29 -0
- package/dist/constants.js.map +1 -0
- package/dist/core.d.ts +11 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +547 -0
- package/dist/core.js.map +1 -0
- package/dist/factory/detectors.d.ts +13 -0
- package/dist/factory/detectors.d.ts.map +1 -0
- package/dist/factory/detectors.js +46 -0
- package/dist/factory/detectors.js.map +1 -0
- package/dist/factory/hooks.d.ts +29 -0
- package/dist/factory/hooks.d.ts.map +1 -0
- package/dist/factory/hooks.js +154 -0
- package/dist/factory/hooks.js.map +1 -0
- package/dist/factory/index.d.ts +23 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +47 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/factory/presets.d.ts +27 -0
- package/dist/factory/presets.d.ts.map +1 -0
- package/dist/factory/presets.js +186 -0
- package/dist/factory/presets.js.map +1 -0
- package/dist/factory.d.ts +183 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +482 -0
- package/dist/factory.js.map +1 -0
- package/dist/helpers.d.ts +53 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +177 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/route/index.d.ts +7 -0
- package/dist/route/index.d.ts.map +1 -0
- package/dist/route/index.js +6 -0
- package/dist/route/index.js.map +1 -0
- package/dist/route/parser.d.ts +18 -0
- package/dist/route/parser.d.ts.map +1 -0
- package/dist/route/parser.js +187 -0
- package/dist/route/parser.js.map +1 -0
- package/dist/route/regex.d.ts +31 -0
- package/dist/route/regex.d.ts.map +1 -0
- package/dist/route/regex.js +145 -0
- package/dist/route/regex.js.map +1 -0
- package/dist/route/regex.test.d.ts +7 -0
- package/dist/route/regex.test.d.ts.map +1 -0
- package/dist/route/regex.test.js +666 -0
- package/dist/route/regex.test.js.map +1 -0
- package/dist/route/types.d.ts +58 -0
- package/dist/route/types.d.ts.map +1 -0
- package/dist/route/types.js +5 -0
- package/dist/route/types.js.map +1 -0
- package/dist/route-parser.d.ts +8 -0
- package/dist/route-parser.d.ts.map +1 -0
- package/dist/route-parser.js +8 -0
- package/dist/route-parser.js.map +1 -0
- package/dist/types.d.ts +142 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +41 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +264 -0
- package/dist/utils.js.map +1 -0
- package/dist/vite-config-parser.d.ts +62 -0
- package/dist/vite-config-parser.d.ts.map +1 -0
- package/dist/vite-config-parser.js +229 -0
- package/dist/vite-config-parser.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EdgeOne Vite Plugin - Shared Constants
|
|
3
|
+
*/
|
|
4
|
+
/** Server entry file candidates for auto-detection */
|
|
5
|
+
export declare const SERVER_ENTRY_CANDIDATES: readonly ["server.js", "server.mjs", "index.js", "index.mjs", "entry.js", "entry.mjs", "entry-server.js", "entry-server.mjs"];
|
|
6
|
+
/** Client build directory candidates */
|
|
7
|
+
export declare const DEFAULT_CLIENT_BUILD_DIRS: readonly ["dist/client", "dist", "build/client", "build"];
|
|
8
|
+
/** Server build directory candidates */
|
|
9
|
+
export declare const DEFAULT_SERVER_BUILD_DIRS: readonly ["dist/server", "build/server"];
|
|
10
|
+
/** Default EdgeOne output directory */
|
|
11
|
+
export declare const EDGEONE_OUTPUT_DIR = ".edgeone";
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,+HAS1B,CAAC;AAEX,wCAAwC;AACxC,eAAO,MAAM,yBAAyB,2DAK5B,CAAC;AAEX,wCAAwC;AACxC,eAAO,MAAM,yBAAyB,0CAG5B,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,aAAa,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EdgeOne Vite Plugin - Shared Constants
|
|
3
|
+
*/
|
|
4
|
+
/** Server entry file candidates for auto-detection */
|
|
5
|
+
export const SERVER_ENTRY_CANDIDATES = [
|
|
6
|
+
"server.js",
|
|
7
|
+
"server.mjs",
|
|
8
|
+
"index.js",
|
|
9
|
+
"index.mjs",
|
|
10
|
+
"entry.js",
|
|
11
|
+
"entry.mjs",
|
|
12
|
+
"entry-server.js",
|
|
13
|
+
"entry-server.mjs",
|
|
14
|
+
];
|
|
15
|
+
/** Client build directory candidates */
|
|
16
|
+
export const DEFAULT_CLIENT_BUILD_DIRS = [
|
|
17
|
+
"dist/client",
|
|
18
|
+
"dist",
|
|
19
|
+
"build/client",
|
|
20
|
+
"build",
|
|
21
|
+
];
|
|
22
|
+
/** Server build directory candidates */
|
|
23
|
+
export const DEFAULT_SERVER_BUILD_DIRS = [
|
|
24
|
+
"dist/server",
|
|
25
|
+
"build/server",
|
|
26
|
+
];
|
|
27
|
+
/** Default EdgeOne output directory */
|
|
28
|
+
export const EDGEONE_OUTPUT_DIR = ".edgeone";
|
|
29
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,aAAa;IACb,MAAM;IACN,cAAc;IACd,OAAO;CACC,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,aAAa;IACb,cAAc;CACN,CAAC;AAEX,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EdgeOne Vite Plugin Adapter - Core Plugin Module
|
|
3
|
+
*
|
|
4
|
+
* Handles build artifact detection, static asset copying, server code bundling,
|
|
5
|
+
* route config generation, and config.json generation for EdgeOne deployment.
|
|
6
|
+
*/
|
|
7
|
+
import type { Plugin } from "vite";
|
|
8
|
+
import type { CoreAdapterOptions } from "./types.js";
|
|
9
|
+
export declare function createCoreAdapter(options?: CoreAdapterOptions): Plugin;
|
|
10
|
+
export default createCoreAdapter;
|
|
11
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAkCpB,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAkT1E;AA4ZD,eAAe,iBAAiB,CAAC"}
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EdgeOne Vite Plugin Adapter - Core Plugin Module
|
|
3
|
+
*
|
|
4
|
+
* Handles build artifact detection, static asset copying, server code bundling,
|
|
5
|
+
* route config generation, and config.json generation for EdgeOne deployment.
|
|
6
|
+
*/
|
|
7
|
+
import path from "path";
|
|
8
|
+
import { createLogger, pathExists, copyDirectory, ensureDirectory, writeFile, detectServerEntry, createDefaultOutputConfig, } from "./utils.js";
|
|
9
|
+
import { ViteConfigParser } from "./vite-config-parser.js";
|
|
10
|
+
import { bundleServerCode, createServerWrapper, cleanupWrapper, } from "./bundler.js";
|
|
11
|
+
import { addRegexToRoutes, convertRoutesToOutputRoutes, isDynamicRoute, } from "./route/index.js";
|
|
12
|
+
import fs from "fs/promises";
|
|
13
|
+
const SERVER_ENTRY_CANDIDATES = [
|
|
14
|
+
"server.js",
|
|
15
|
+
"server.mjs",
|
|
16
|
+
"index.js",
|
|
17
|
+
"index.mjs",
|
|
18
|
+
"entry.js",
|
|
19
|
+
"entry.mjs",
|
|
20
|
+
"entry-server.js",
|
|
21
|
+
"entry-server.mjs",
|
|
22
|
+
];
|
|
23
|
+
export function createCoreAdapter(options = {}) {
|
|
24
|
+
const { verbose = false, adapter, hooks = {}, ssr: ssrOption, postBuildAssetSync = false, } = options;
|
|
25
|
+
const outputDir = ".edgeone";
|
|
26
|
+
const logger = createLogger(verbose);
|
|
27
|
+
let projectRoot;
|
|
28
|
+
let viteConfig;
|
|
29
|
+
let isSSR = false;
|
|
30
|
+
let hasProcessed = false;
|
|
31
|
+
let hasPostBuildAssetSync = false;
|
|
32
|
+
let pendingClientDir = null;
|
|
33
|
+
let clientBuildPhaseCompleted = false;
|
|
34
|
+
// Helper function to check if server build artifacts exist
|
|
35
|
+
async function isServerBuildReady() {
|
|
36
|
+
const configParser = viteConfig
|
|
37
|
+
? new ViteConfigParser(viteConfig, projectRoot, {
|
|
38
|
+
logger,
|
|
39
|
+
serverEntryCandidates: SERVER_ENTRY_CANDIDATES,
|
|
40
|
+
})
|
|
41
|
+
: null;
|
|
42
|
+
// Get base output directory from Vite config (rollup output dir preferred)
|
|
43
|
+
const baseOutDir = configParser ? configParser.getOutputDir() : "dist";
|
|
44
|
+
// Build server directory candidates dynamically based on Vite config
|
|
45
|
+
const serverDirCandidates = [];
|
|
46
|
+
// If current outDir is already a server directory (e.g., when building SSR)
|
|
47
|
+
if (viteConfig?.build?.ssr && typeof viteConfig.build.ssr === "string") {
|
|
48
|
+
// SSR entry is specified, the outDir itself might be the server output
|
|
49
|
+
serverDirCandidates.push(baseOutDir);
|
|
50
|
+
}
|
|
51
|
+
// Standard SSR build directories (most common patterns)
|
|
52
|
+
serverDirCandidates.push(`${baseOutDir}/server`);
|
|
53
|
+
// Fallback directories for different frameworks
|
|
54
|
+
if (baseOutDir !== "build") {
|
|
55
|
+
serverDirCandidates.push("build/server");
|
|
56
|
+
}
|
|
57
|
+
if (baseOutDir !== "dist") {
|
|
58
|
+
serverDirCandidates.push("dist/server");
|
|
59
|
+
}
|
|
60
|
+
logger.verbose("Server directory candidates:", serverDirCandidates);
|
|
61
|
+
for (const serverDirRel of serverDirCandidates) {
|
|
62
|
+
const serverDir = path.join(projectRoot, serverDirRel);
|
|
63
|
+
if (await pathExists(serverDir)) {
|
|
64
|
+
// Check if server entry exists
|
|
65
|
+
for (const entryCandidate of SERVER_ENTRY_CANDIDATES) {
|
|
66
|
+
const entryPath = path.join(serverDir, entryCandidate);
|
|
67
|
+
if (await pathExists(entryPath)) {
|
|
68
|
+
logger.verbose(`Server build ready: ${serverDir}, entry: ${entryPath}`);
|
|
69
|
+
return { ready: true, serverDir, serverEntry: entryPath };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Also check subdirectories for entry files
|
|
73
|
+
try {
|
|
74
|
+
const subdirs = await fs.readdir(serverDir, { withFileTypes: true });
|
|
75
|
+
for (const subdir of subdirs) {
|
|
76
|
+
if (subdir.isDirectory()) {
|
|
77
|
+
for (const entryCandidate of SERVER_ENTRY_CANDIDATES) {
|
|
78
|
+
const entryPath = path.join(serverDir, subdir.name, entryCandidate);
|
|
79
|
+
if (await pathExists(entryPath)) {
|
|
80
|
+
logger.verbose(`Server build ready: ${serverDir}, entry: ${entryPath}`);
|
|
81
|
+
return { ready: true, serverDir, serverEntry: entryPath };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Ignore readdir errors
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return { ready: false };
|
|
93
|
+
}
|
|
94
|
+
async function resolveClientDirForPostBuildSync(context) {
|
|
95
|
+
if (pendingClientDir && (await pathExists(pendingClientDir))) {
|
|
96
|
+
return pendingClientDir;
|
|
97
|
+
}
|
|
98
|
+
let artifacts;
|
|
99
|
+
if (adapter) {
|
|
100
|
+
const shouldUse = await adapter.detect(context);
|
|
101
|
+
if (!shouldUse) {
|
|
102
|
+
artifacts = await detectBuildArtifacts(context);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
artifacts = await adapter.getBuildArtifacts(context);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
artifacts = await detectBuildArtifacts(context);
|
|
110
|
+
}
|
|
111
|
+
if (artifacts.clientDir && (await pathExists(artifacts.clientDir))) {
|
|
112
|
+
return artifacts.clientDir;
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
name: "edgeone-adapter",
|
|
118
|
+
apply: "build",
|
|
119
|
+
enforce: "post",
|
|
120
|
+
configResolved(config) {
|
|
121
|
+
projectRoot = config.root;
|
|
122
|
+
viteConfig = config;
|
|
123
|
+
if (ssrOption !== undefined) {
|
|
124
|
+
logger.verbose("SSR mode configured:", ssrOption);
|
|
125
|
+
isSSR = ssrOption;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
logger.verbose("Auto-detecting SSR mode from Vite config", config.build.ssr);
|
|
129
|
+
isSSR = config.build.ssr !== false && config.build.ssr !== undefined;
|
|
130
|
+
}
|
|
131
|
+
logger.verbose("Project root:", projectRoot);
|
|
132
|
+
logger.verbose("SSR mode:", isSSR);
|
|
133
|
+
},
|
|
134
|
+
async closeBundle() {
|
|
135
|
+
const currentOutDir = viteConfig.build.outDir;
|
|
136
|
+
const isServerOutDir = currentOutDir.endsWith("/server") ||
|
|
137
|
+
currentOutDir.endsWith("\\server") ||
|
|
138
|
+
typeof viteConfig.build.ssr === "string";
|
|
139
|
+
logger.verbose("closeBundle triggered, isSSR:", isSSR, "outDir:", currentOutDir, "isServerOutDir:", isServerOutDir);
|
|
140
|
+
// For SSR builds, we need to wait for both client and server to be ready
|
|
141
|
+
if (isSSR) {
|
|
142
|
+
let serverStatus = null;
|
|
143
|
+
// Record client directory when client build completes
|
|
144
|
+
if (!isServerOutDir && !clientBuildPhaseCompleted) {
|
|
145
|
+
logger.verbose("Client build phase detected, deferring asset copy to final phase");
|
|
146
|
+
const clientDir = path.isAbsolute(currentOutDir)
|
|
147
|
+
? currentOutDir
|
|
148
|
+
: path.join(projectRoot, currentOutDir);
|
|
149
|
+
if (await pathExists(clientDir)) {
|
|
150
|
+
pendingClientDir = clientDir;
|
|
151
|
+
logger.verbose("Recorded pending client dir:", pendingClientDir);
|
|
152
|
+
}
|
|
153
|
+
clientBuildPhaseCompleted = true;
|
|
154
|
+
// Check if server is already built (in case of re-build or different build order)
|
|
155
|
+
serverStatus = await isServerBuildReady();
|
|
156
|
+
if (!serverStatus.ready) {
|
|
157
|
+
logger.verbose("Server build not ready yet, deferring processing");
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
logger.verbose("Server build already exists, continuing with processing");
|
|
161
|
+
}
|
|
162
|
+
// For SSR mode, always check if server build is ready before processing
|
|
163
|
+
if (!serverStatus) {
|
|
164
|
+
serverStatus = await isServerBuildReady();
|
|
165
|
+
}
|
|
166
|
+
if (!serverStatus.ready) {
|
|
167
|
+
logger.verbose("Server build not ready, skipping processing for now");
|
|
168
|
+
// Don't set hasProcessed here, so we can try again on next closeBundle
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (hasProcessed) {
|
|
173
|
+
logger.verbose("Skipping processing (already processed)");
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
hasProcessed = true;
|
|
177
|
+
try {
|
|
178
|
+
const context = {
|
|
179
|
+
projectRoot,
|
|
180
|
+
outputDir,
|
|
181
|
+
isSSR,
|
|
182
|
+
viteConfig,
|
|
183
|
+
logger,
|
|
184
|
+
};
|
|
185
|
+
if (hooks.beforeBuild)
|
|
186
|
+
await hooks.beforeBuild(context);
|
|
187
|
+
let artifacts;
|
|
188
|
+
if (adapter) {
|
|
189
|
+
const shouldUse = await adapter.detect(context);
|
|
190
|
+
if (!shouldUse) {
|
|
191
|
+
logger.warn(`Adapter ${adapter.name} detection failed, using default config`);
|
|
192
|
+
}
|
|
193
|
+
artifacts = await adapter.getBuildArtifacts(context);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
artifacts = await detectBuildArtifacts(context);
|
|
197
|
+
}
|
|
198
|
+
if (pendingClientDir && !artifacts.clientDir) {
|
|
199
|
+
artifacts.clientDir = pendingClientDir;
|
|
200
|
+
artifacts.assetsDir = pendingClientDir;
|
|
201
|
+
logger.verbose("Using pending client dir from deferred phase:", pendingClientDir);
|
|
202
|
+
}
|
|
203
|
+
if (hooks.afterBuild)
|
|
204
|
+
await hooks.afterBuild(context, artifacts);
|
|
205
|
+
logger.verbose("artifacts", artifacts);
|
|
206
|
+
await cleanOutputDir(context);
|
|
207
|
+
if (artifacts.clientDir)
|
|
208
|
+
await copyStaticAssets(context, artifacts.clientDir);
|
|
209
|
+
if (isSSR && artifacts.serverEntry) {
|
|
210
|
+
await bundleServer(context, artifacts, adapter);
|
|
211
|
+
await generateConfigJson(context, adapter);
|
|
212
|
+
}
|
|
213
|
+
logger.verbose("EdgeOne adapter processing complete");
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
logger.error("EdgeOne adapter processing failed:", error);
|
|
217
|
+
throw error;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
buildApp: {
|
|
221
|
+
order: "post",
|
|
222
|
+
async handler() {
|
|
223
|
+
if (!postBuildAssetSync ||
|
|
224
|
+
!isSSR ||
|
|
225
|
+
!hasProcessed ||
|
|
226
|
+
hasPostBuildAssetSync) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const context = {
|
|
230
|
+
projectRoot,
|
|
231
|
+
outputDir,
|
|
232
|
+
isSSR,
|
|
233
|
+
viteConfig,
|
|
234
|
+
logger,
|
|
235
|
+
};
|
|
236
|
+
const clientDir = await resolveClientDirForPostBuildSync(context);
|
|
237
|
+
if (!clientDir) {
|
|
238
|
+
logger.verbose("Post-build asset sync skipped: client directory not found");
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
await copyStaticAssets(context, clientDir);
|
|
242
|
+
await generateConfigJson(context, adapter);
|
|
243
|
+
hasPostBuildAssetSync = true;
|
|
244
|
+
logger.verbose("Post-build static assets sync complete and config.json regenerated");
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
async function detectBuildArtifacts(context) {
|
|
250
|
+
const { projectRoot, logger, viteConfig, isSSR } = context;
|
|
251
|
+
let clientDir = null;
|
|
252
|
+
let serverDir = null;
|
|
253
|
+
let serverEntry = null;
|
|
254
|
+
const serverEntryCandidates = SERVER_ENTRY_CANDIDATES;
|
|
255
|
+
if (viteConfig) {
|
|
256
|
+
const configParser = new ViteConfigParser(viteConfig, projectRoot, {
|
|
257
|
+
logger,
|
|
258
|
+
serverEntryCandidates,
|
|
259
|
+
});
|
|
260
|
+
const configInfo = await configParser.parse();
|
|
261
|
+
logger.verbose("Vite config parsed:", {
|
|
262
|
+
outDir: configInfo.outDir,
|
|
263
|
+
isSSR: configInfo.isSSR,
|
|
264
|
+
ssrEntry: configInfo.ssrEntry,
|
|
265
|
+
});
|
|
266
|
+
if (configInfo.isSSR) {
|
|
267
|
+
const clientCandidates = [
|
|
268
|
+
path.join(configInfo.absoluteOutDir, "client"),
|
|
269
|
+
configInfo.absoluteOutDir,
|
|
270
|
+
];
|
|
271
|
+
for (const candidate of clientCandidates) {
|
|
272
|
+
if (await pathExists(candidate)) {
|
|
273
|
+
const hasHtml = await pathExists(path.join(candidate, "index.html"));
|
|
274
|
+
const hasAssets = await pathExists(path.join(candidate, "assets"));
|
|
275
|
+
if (hasHtml || hasAssets) {
|
|
276
|
+
clientDir = candidate;
|
|
277
|
+
logger.verbose(`Found client directory: ${clientDir}`);
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
if (await pathExists(configInfo.absoluteOutDir)) {
|
|
285
|
+
clientDir = configInfo.absoluteOutDir;
|
|
286
|
+
logger.verbose(`Found client directory (SPA): ${clientDir}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (isSSR) {
|
|
290
|
+
serverDir = configInfo.serverDir;
|
|
291
|
+
serverEntry = configInfo.serverEntryPath;
|
|
292
|
+
if (!serverEntry && serverDir) {
|
|
293
|
+
serverEntry = await detectServerEntry(serverDir, serverEntryCandidates, { recursive: true, logger });
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Fallback detection
|
|
298
|
+
if (!clientDir) {
|
|
299
|
+
const clientPaths = [
|
|
300
|
+
path.join(projectRoot, "dist"),
|
|
301
|
+
path.join(projectRoot, "dist/client"),
|
|
302
|
+
path.join(projectRoot, "build/client"),
|
|
303
|
+
path.join(projectRoot, "build"),
|
|
304
|
+
];
|
|
305
|
+
for (const p of clientPaths) {
|
|
306
|
+
if (await pathExists(p)) {
|
|
307
|
+
clientDir = p;
|
|
308
|
+
logger.verbose(`Found client build directory (fallback): ${p}`);
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
if (isSSR && !serverDir) {
|
|
314
|
+
const serverPaths = [
|
|
315
|
+
path.join(projectRoot, "dist/server"),
|
|
316
|
+
path.join(projectRoot, "build/server"),
|
|
317
|
+
];
|
|
318
|
+
for (const p of serverPaths) {
|
|
319
|
+
if (await pathExists(p)) {
|
|
320
|
+
serverDir = p;
|
|
321
|
+
logger.verbose(`Found server build directory (fallback): ${p}`);
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (isSSR && serverDir && !serverEntry) {
|
|
327
|
+
serverEntry = await detectServerEntry(serverDir, serverEntryCandidates, {
|
|
328
|
+
recursive: true,
|
|
329
|
+
logger,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
return { clientDir, serverDir, serverEntry, assetsDir: clientDir };
|
|
333
|
+
}
|
|
334
|
+
async function cleanOutputDir(context) {
|
|
335
|
+
const { projectRoot, outputDir, logger } = context;
|
|
336
|
+
const outputPath = path.join(projectRoot, outputDir);
|
|
337
|
+
const pathsToClean = [
|
|
338
|
+
path.join(outputPath, "assets"),
|
|
339
|
+
path.join(outputPath, "cloud-functions", "ssr-node"),
|
|
340
|
+
];
|
|
341
|
+
for (const p of pathsToClean) {
|
|
342
|
+
try {
|
|
343
|
+
await fs.rm(p, { recursive: true, force: true });
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
// Ignore errors
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
await ensureDirectory(outputPath);
|
|
350
|
+
logger.verbose("Output directory cleaned");
|
|
351
|
+
}
|
|
352
|
+
async function copyStaticAssets(context, clientDir) {
|
|
353
|
+
const { projectRoot, outputDir, logger } = context;
|
|
354
|
+
const targetPath = path.join(projectRoot, outputDir, "assets");
|
|
355
|
+
await copyDirectory(clientDir, targetPath);
|
|
356
|
+
logger.verbose(`Static assets copied to ${outputDir}/assets`);
|
|
357
|
+
}
|
|
358
|
+
async function bundleServer(context, artifacts, adapter) {
|
|
359
|
+
const { projectRoot, outputDir, logger } = context;
|
|
360
|
+
if (!artifacts.serverEntry) {
|
|
361
|
+
logger.warn("Server entry file not found, skipping server bundling");
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const outputPath = path.join(projectRoot, outputDir, "cloud-functions", "ssr-node");
|
|
365
|
+
const outputFile = path.join(outputPath, "handler.js");
|
|
366
|
+
const adapterHooks = adapter?.hooks || {};
|
|
367
|
+
const wrapperConfig = { serverEntryPath: artifacts.serverEntry };
|
|
368
|
+
const serverDir = artifacts.serverDir || path.dirname(artifacts.serverEntry);
|
|
369
|
+
let wrapperPath;
|
|
370
|
+
if (adapterHooks.generateServerWrapper) {
|
|
371
|
+
const wrapperContent = await adapterHooks.generateServerWrapper(context, wrapperConfig);
|
|
372
|
+
wrapperPath = path.join(serverDir, "server-wrapper.temp.js");
|
|
373
|
+
await writeFile(wrapperPath, wrapperContent);
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
wrapperPath = await createServerWrapper(context, wrapperConfig);
|
|
377
|
+
}
|
|
378
|
+
let bundleConfig = {
|
|
379
|
+
entryPoints: [wrapperPath],
|
|
380
|
+
outfile: outputFile,
|
|
381
|
+
esbuildOptions: { absWorkingDir: serverDir },
|
|
382
|
+
};
|
|
383
|
+
if (context.viteConfig && adapterHooks.beforeBundle) {
|
|
384
|
+
bundleConfig = await adapterHooks.beforeBundle(context, bundleConfig);
|
|
385
|
+
}
|
|
386
|
+
const bundleResult = await bundleServerCode(context, bundleConfig);
|
|
387
|
+
await cleanupWrapper(wrapperPath);
|
|
388
|
+
// Extract bundled files from metafile to avoid copying already-inlined files
|
|
389
|
+
const bundledFiles = getBundledFiles(bundleResult.metafile, serverDir);
|
|
390
|
+
// Copy only server-side files that were NOT inlined into handler.js
|
|
391
|
+
await copyServerAssets(serverDir, outputPath, artifacts.serverEntry, bundledFiles, logger);
|
|
392
|
+
if (adapterHooks.afterBundle) {
|
|
393
|
+
await adapterHooks.afterBundle(context, outputFile);
|
|
394
|
+
}
|
|
395
|
+
logger.verbose(`Server code bundled to ${outputDir}/cloud-functions/ssr-node/handler.js`);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Extract the set of files that were bundled/inlined into handler.js from esbuild metafile.
|
|
399
|
+
* Returns a Set of absolute file paths that are already included in the bundle.
|
|
400
|
+
*/
|
|
401
|
+
function getBundledFiles(metafile, serverDir) {
|
|
402
|
+
const bundledFiles = new Set();
|
|
403
|
+
if (!metafile?.inputs) {
|
|
404
|
+
return bundledFiles;
|
|
405
|
+
}
|
|
406
|
+
for (const inputPath of Object.keys(metafile.inputs)) {
|
|
407
|
+
// esbuild metafile uses relative paths from absWorkingDir
|
|
408
|
+
// Convert to absolute path for comparison
|
|
409
|
+
const absolutePath = path.isAbsolute(inputPath)
|
|
410
|
+
? inputPath
|
|
411
|
+
: path.resolve(serverDir, inputPath);
|
|
412
|
+
bundledFiles.add(absolutePath);
|
|
413
|
+
}
|
|
414
|
+
return bundledFiles;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Copy server build files to cloud-functions/ssr-node directory.
|
|
418
|
+
* Only copies files that are NOT already bundled into handler.js.
|
|
419
|
+
* This ensures files needed at runtime (non-JS assets, dynamic imports, etc.) are available.
|
|
420
|
+
*/
|
|
421
|
+
async function copyServerAssets(serverDir, outputPath, serverEntry, bundledFiles, logger) {
|
|
422
|
+
const serverEntryFileName = path.basename(serverEntry);
|
|
423
|
+
let copiedCount = 0;
|
|
424
|
+
let skippedCount = 0;
|
|
425
|
+
async function copyRecursive(srcDir, destDir, relativePath = "") {
|
|
426
|
+
const entries = await fs.readdir(srcDir, { withFileTypes: true });
|
|
427
|
+
for (const entry of entries) {
|
|
428
|
+
const srcPath = path.join(srcDir, entry.name);
|
|
429
|
+
const destPath = path.join(destDir, entry.name);
|
|
430
|
+
const currentRelativePath = relativePath
|
|
431
|
+
? `${relativePath}/${entry.name}`
|
|
432
|
+
: entry.name;
|
|
433
|
+
// Skip the main server entry file (already bundled into handler.js)
|
|
434
|
+
if (relativePath === "" && entry.name === serverEntryFileName)
|
|
435
|
+
continue;
|
|
436
|
+
// Skip temporary files generated during build
|
|
437
|
+
if (entry.name.endsWith(".temp.js") || entry.name.endsWith(".temp.mjs"))
|
|
438
|
+
continue;
|
|
439
|
+
if (entry.isDirectory()) {
|
|
440
|
+
// Recursively process directories
|
|
441
|
+
await copyRecursive(srcPath, destPath, currentRelativePath);
|
|
442
|
+
}
|
|
443
|
+
else if (entry.isFile()) {
|
|
444
|
+
// Check if this file was already bundled into handler.js
|
|
445
|
+
const absoluteSrcPath = path.resolve(srcPath);
|
|
446
|
+
if (bundledFiles.has(absoluteSrcPath)) {
|
|
447
|
+
skippedCount++;
|
|
448
|
+
logger.verbose(`Skipped (already bundled): ${currentRelativePath}`);
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
// Copy the file
|
|
452
|
+
try {
|
|
453
|
+
await ensureDirectory(destDir);
|
|
454
|
+
await fs.copyFile(srcPath, destPath);
|
|
455
|
+
copiedCount++;
|
|
456
|
+
logger.verbose(`Copied server file: ${currentRelativePath}`);
|
|
457
|
+
}
|
|
458
|
+
catch (error) {
|
|
459
|
+
logger.verbose(`Failed to copy ${currentRelativePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
await copyRecursive(serverDir, outputPath);
|
|
465
|
+
if (copiedCount > 0 || skippedCount > 0) {
|
|
466
|
+
logger.verbose(`Server assets: copied ${copiedCount}, skipped ${skippedCount} (already bundled)`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
function getStaticHtmlCandidates(assetsDir, routePath) {
|
|
470
|
+
if (routePath === "/") {
|
|
471
|
+
return [path.join(assetsDir, "index.html")];
|
|
472
|
+
}
|
|
473
|
+
const normalizedPath = routePath.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
474
|
+
return [
|
|
475
|
+
path.join(assetsDir, normalizedPath, "index.html"),
|
|
476
|
+
path.join(assetsDir, `${normalizedPath}.html`),
|
|
477
|
+
];
|
|
478
|
+
}
|
|
479
|
+
async function hasStaticHtmlForRoute(assetsDir, routePath, cache) {
|
|
480
|
+
const key = routePath || "/";
|
|
481
|
+
if (cache.has(key)) {
|
|
482
|
+
return cache.get(key) === true;
|
|
483
|
+
}
|
|
484
|
+
const candidates = getStaticHtmlCandidates(assetsDir, key);
|
|
485
|
+
for (const filePath of candidates) {
|
|
486
|
+
if (await pathExists(filePath)) {
|
|
487
|
+
cache.set(key, true);
|
|
488
|
+
return true;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
cache.set(key, false);
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
async function filterRoutesByStaticHtml(context, routes) {
|
|
495
|
+
const { projectRoot, outputDir, logger } = context;
|
|
496
|
+
const assetsDir = path.join(projectRoot, outputDir, "assets");
|
|
497
|
+
if (!(await pathExists(assetsDir))) {
|
|
498
|
+
return routes;
|
|
499
|
+
}
|
|
500
|
+
const staticHtmlCache = new Map();
|
|
501
|
+
const filteredRoutes = [];
|
|
502
|
+
let skippedStaticCount = 0;
|
|
503
|
+
for (const route of routes) {
|
|
504
|
+
const routePath = route.srcRoute || route.path;
|
|
505
|
+
if (isDynamicRoute(routePath)) {
|
|
506
|
+
filteredRoutes.push(route);
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
509
|
+
if (await hasStaticHtmlForRoute(assetsDir, routePath, staticHtmlCache)) {
|
|
510
|
+
skippedStaticCount++;
|
|
511
|
+
logger.verbose(`Skipped route from config.json (static HTML exists): ${routePath}`);
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
filteredRoutes.push(route);
|
|
515
|
+
}
|
|
516
|
+
if (skippedStaticCount > 0) {
|
|
517
|
+
logger.verbose(`Filtered ${skippedStaticCount} static SSG routes from config.json`);
|
|
518
|
+
}
|
|
519
|
+
return filteredRoutes;
|
|
520
|
+
}
|
|
521
|
+
async function generateConfigJson(context, adapter) {
|
|
522
|
+
const { projectRoot, outputDir, isSSR, logger } = context;
|
|
523
|
+
let routes = [];
|
|
524
|
+
const adapterHooks = adapter?.hooks || {};
|
|
525
|
+
if (adapterHooks.generateRoutes) {
|
|
526
|
+
routes = await adapterHooks.generateRoutes(context);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
routes = [{ path: "/", isStatic: !isSSR, srcRoute: "/" }];
|
|
530
|
+
}
|
|
531
|
+
const filteredRoutes = await filterRoutesByStaticHtml(context, routes);
|
|
532
|
+
const outputRoutes = convertRoutesToOutputRoutes(filteredRoutes);
|
|
533
|
+
const configHook = adapterHooks.generateConfig;
|
|
534
|
+
let outputConfig;
|
|
535
|
+
if (configHook) {
|
|
536
|
+
const routesWithRegex = addRegexToRoutes(filteredRoutes);
|
|
537
|
+
outputConfig = await configHook(context, routesWithRegex);
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
outputConfig = createDefaultOutputConfig(outputRoutes, { isSSR });
|
|
541
|
+
}
|
|
542
|
+
const configContent = JSON.stringify(outputConfig, null, 2);
|
|
543
|
+
await writeFile(path.join(projectRoot, outputDir, "cloud-functions", "ssr-node", "config.json"), configContent);
|
|
544
|
+
logger.verbose(`config.json generated with ${filteredRoutes.length}/${routes.length} routes`);
|
|
545
|
+
}
|
|
546
|
+
export default createCoreAdapter;
|
|
547
|
+
//# sourceMappingURL=core.js.map
|