@edgeone/vite 1.0.0 → 1.0.2
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/dist/index.d.ts +5 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +105 -42
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,23 +8,15 @@ import { createEsmInteropPlugin, type ViteAdapterOptions, type ServerWrapperPres
|
|
|
8
8
|
* These packages have wrapper files that incorrectly re-export non-existent default exports.
|
|
9
9
|
*/
|
|
10
10
|
declare const VIKE_ESM_INTEROP_MAPPINGS: Record<string, string>;
|
|
11
|
-
|
|
11
|
+
declare const presets: {
|
|
12
12
|
readonly autoDetect: ServerWrapperPreset;
|
|
13
13
|
readonly webHandler: ServerWrapperPreset;
|
|
14
14
|
readonly ssrRender: ServerWrapperPreset;
|
|
15
15
|
} & {
|
|
16
|
-
vike:
|
|
17
|
-
imports: string;
|
|
18
|
-
setup: string;
|
|
19
|
-
invoke: string;
|
|
20
|
-
esbuildConfig: {
|
|
21
|
-
options: {
|
|
22
|
-
plugins: import("esbuild").Plugin[];
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
};
|
|
16
|
+
vike: ServerWrapperPreset;
|
|
26
17
|
};
|
|
27
|
-
export
|
|
18
|
+
export declare const SERVER_WRAPPER_PRESETS: Record<string, ServerWrapperPreset>;
|
|
19
|
+
export type ServerWrapperPresetName = keyof typeof presets;
|
|
28
20
|
export interface ViteEdgeoneAdapterOptions extends ViteAdapterOptions {
|
|
29
21
|
clientBuildDir?: string;
|
|
30
22
|
serverBuildDir?: string;
|
|
@@ -35,5 +27,5 @@ export interface ViteEdgeoneAdapterOptions extends ViteAdapterOptions {
|
|
|
35
27
|
export declare function edgeoneViteAdapter(options?: ViteEdgeoneAdapterOptions): Plugin;
|
|
36
28
|
export default edgeoneViteAdapter;
|
|
37
29
|
export { VIKE_ESM_INTEROP_MAPPINGS, createEsmInteropPlugin };
|
|
38
|
-
export type { ViteAdapterOptions, RouteInfo, MetaConfig, BuildContext, BuildArtifacts, ServerWrapperPreset, EsbuildConfig, EsmInteropPluginOptions, } from "@
|
|
30
|
+
export type { ViteAdapterOptions, RouteInfo, MetaConfig, BuildContext, BuildArtifacts, ServerWrapperPreset, EsbuildConfig, EsmInteropPluginOptions, } from "@edgeone/vite-core";
|
|
39
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAGnD,OAAO,EAIL,sBAAsB,EAItB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAIzB,MAAM,oBAAoB,CAAC;AAW5B;;;GAGG;AACH,QAAA,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOrD,CAAC;AA2CF,QAAA,MAAM,OAAO;;;;;;CAA0B,CAAC;AAGxC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAW,CAAC;AAEnF,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,OAAO,CAAC;AAE3D,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,uBAAuB,GAAG,mBAAmB,CAAC;CAC/D;AA+FD,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,MAAM,CAiHR;AAED,eAAe,kBAAkB,CAAC;AAGlC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,CAAC;AAE7D,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
import path from "path";
|
|
5
5
|
import fs from "fs/promises";
|
|
6
6
|
import { createCoreAdapter, createFrameworkAdapter, extendServerWrapperPresets, createEsmInteropPlugin, pathExists, listFiles, normalizeRoutePath, } from "@edgeone/vite-core";
|
|
7
|
+
/**
|
|
8
|
+
* Detect if Vike framework is being used by checking Vite plugins
|
|
9
|
+
*/
|
|
10
|
+
function detectVikeFromPlugins(config) {
|
|
11
|
+
return config.plugins.some((p) => p.name === "vike" || p.name.startsWith("vike:"));
|
|
12
|
+
}
|
|
7
13
|
/**
|
|
8
14
|
* ESM interop mappings for vike and related packages.
|
|
9
15
|
* These packages have wrapper files that incorrectly re-export non-existent default exports.
|
|
@@ -15,10 +21,9 @@ const VIKE_ESM_INTEROP_MAPPINGS = {
|
|
|
15
21
|
"@brillout/json-serializer/parse": "@brillout/json-serializer/dist/parse.js",
|
|
16
22
|
"@brillout/json-serializer/stringify": "@brillout/json-serializer/dist/stringify.js",
|
|
17
23
|
};
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
setup: `
|
|
24
|
+
const vikePreset = {
|
|
25
|
+
imports: `import { renderPage } from 'vike/server';`,
|
|
26
|
+
setup: `
|
|
22
27
|
async function handleVikeRequest(request) {
|
|
23
28
|
try {
|
|
24
29
|
const pageContextInit = {
|
|
@@ -46,16 +51,18 @@ async function handleVikeRequest(request) {
|
|
|
46
51
|
return new Response('Internal Server Error: ' + error.message, { status: 500, headers: { 'Content-Type': 'text/plain' } });
|
|
47
52
|
}
|
|
48
53
|
}`,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
},
|
|
54
|
+
invoke: "handleVikeRequest(webRequest)",
|
|
55
|
+
esbuildConfig: {
|
|
56
|
+
options: {
|
|
57
|
+
plugins: [
|
|
58
|
+
createEsmInteropPlugin({ mappings: VIKE_ESM_INTEROP_MAPPINGS }),
|
|
59
|
+
],
|
|
56
60
|
},
|
|
57
61
|
},
|
|
58
|
-
}
|
|
62
|
+
};
|
|
63
|
+
const extendedPresets = extendServerWrapperPresets({ vike: vikePreset });
|
|
64
|
+
const presets = extendedPresets.presets;
|
|
65
|
+
const resolvePreset = extendedPresets.resolvePreset;
|
|
59
66
|
export const SERVER_WRAPPER_PRESETS = presets;
|
|
60
67
|
const VIKE_PAGE_FILE = "+Page";
|
|
61
68
|
const VIKE_LAYOUT_DIRS = ["_default", "_error"];
|
|
@@ -130,37 +137,93 @@ async function createVikeGenerateRoutesHook(candidateDirs, fallbackRoutes) {
|
|
|
130
137
|
};
|
|
131
138
|
}
|
|
132
139
|
export function edgeoneViteAdapter(options = {}) {
|
|
133
|
-
const { clientBuildDir, serverBuildDir, serverEntry, routes, serverWrapper
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}, { clientBuildDir, serverBuildDir, serverEntry, routes }, isVike
|
|
154
|
-
? {
|
|
155
|
-
hooks: {
|
|
156
|
-
generateRoutes: async (context) => {
|
|
157
|
-
const hook = await createVikeGenerateRoutesHook(["pages"], ["/"]);
|
|
158
|
-
return hook(context);
|
|
159
|
-
},
|
|
140
|
+
const { clientBuildDir, serverBuildDir, serverEntry, routes, serverWrapper, // No default - will be auto-detected if not specified
|
|
141
|
+
...coreOptions } = options;
|
|
142
|
+
// Store detected/resolved wrapper name
|
|
143
|
+
let resolvedWrapperName = "ssrRender";
|
|
144
|
+
// Store the real closeBundle handler
|
|
145
|
+
let realCloseBundle;
|
|
146
|
+
// Create adapter lazily after framework detection
|
|
147
|
+
const createAdapter = (isVike) => {
|
|
148
|
+
const presetArg = resolvedWrapperName === "custom"
|
|
149
|
+
? serverWrapper
|
|
150
|
+
: resolvedWrapperName === "vike"
|
|
151
|
+
? "vike"
|
|
152
|
+
: resolvedWrapperName;
|
|
153
|
+
const wrapper = resolvePreset(presetArg);
|
|
154
|
+
return createFrameworkAdapter({
|
|
155
|
+
name: "vite",
|
|
156
|
+
configFiles: ["vite.config.ts", "vite.config.js", "vite.config.mjs"],
|
|
157
|
+
buildDirs: {
|
|
158
|
+
client: ["dist/client", "dist", "build"],
|
|
159
|
+
server: ["dist/server", "server"],
|
|
160
160
|
},
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
serverEntryFiles: [
|
|
162
|
+
"entry-server.js",
|
|
163
|
+
"entry-server.mjs",
|
|
164
|
+
"entry.js",
|
|
165
|
+
"entry.mjs",
|
|
166
|
+
"index.js",
|
|
167
|
+
"index.mjs",
|
|
168
|
+
],
|
|
169
|
+
serverWrapper: wrapper,
|
|
170
|
+
defaultRoutes: ["/"],
|
|
171
|
+
}, { clientBuildDir, serverBuildDir, serverEntry, routes }, isVike
|
|
172
|
+
? {
|
|
173
|
+
hooks: {
|
|
174
|
+
generateRoutes: async (context) => {
|
|
175
|
+
const hook = await createVikeGenerateRoutesHook(["pages"], ["/"]);
|
|
176
|
+
return hook(context);
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
}
|
|
180
|
+
: undefined);
|
|
181
|
+
};
|
|
182
|
+
// Get the base plugin first
|
|
183
|
+
const basePlugin = createCoreAdapter({ ...coreOptions, adapter: undefined });
|
|
184
|
+
return {
|
|
185
|
+
...basePlugin,
|
|
186
|
+
name: "vite-adapter",
|
|
187
|
+
configResolved(config) {
|
|
188
|
+
// Determine serverWrapper: user config > auto-detect > default
|
|
189
|
+
if (serverWrapper) {
|
|
190
|
+
// User explicitly specified
|
|
191
|
+
if (typeof serverWrapper === "string") {
|
|
192
|
+
resolvedWrapperName = serverWrapper;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
resolvedWrapperName = "custom";
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
// Auto-detect framework
|
|
200
|
+
const hasVike = detectVikeFromPlugins(config);
|
|
201
|
+
if (hasVike) {
|
|
202
|
+
resolvedWrapperName = "vike";
|
|
203
|
+
console.log("[EdgeOne] Auto-detected Vike framework, using vike preset");
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
resolvedWrapperName = "ssrRender";
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
const isVike = resolvedWrapperName === "vike";
|
|
210
|
+
const adapter = createAdapter(isVike);
|
|
211
|
+
// Create the real plugin with detected adapter
|
|
212
|
+
const realPlugin = createCoreAdapter({ ...coreOptions, adapter });
|
|
213
|
+
// Store the closeBundle handler in closure variable
|
|
214
|
+
realCloseBundle = realPlugin.closeBundle;
|
|
215
|
+
// Call base configResolved if exists
|
|
216
|
+
if (typeof realPlugin.configResolved === "function") {
|
|
217
|
+
realPlugin.configResolved(config);
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
async closeBundle() {
|
|
221
|
+
// Delegate to the real plugin's closeBundle
|
|
222
|
+
if (typeof realCloseBundle === "function") {
|
|
223
|
+
return realCloseBundle();
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
};
|
|
164
227
|
}
|
|
165
228
|
export default edgeoneViteAdapter;
|
|
166
229
|
// Re-export for convenience
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|