one 1.1.345-1734464750388 → 1.1.346
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/cjs/cli.cjs +5 -1
- package/dist/cjs/cli.js +5 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +5 -1
- package/dist/cjs/cli.native.js.map +2 -2
- package/dist/cjs/config.cjs +6 -6
- package/dist/cjs/config.js +3 -3
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/config.native.js +3 -3
- package/dist/cjs/config.native.js.map +2 -2
- package/dist/cjs/serve-worker.cjs +34 -0
- package/dist/cjs/serve-worker.js +26 -0
- package/dist/cjs/serve-worker.js.map +6 -0
- package/dist/cjs/serve-worker.native.js +31 -0
- package/dist/cjs/serve-worker.native.js.map +6 -0
- package/dist/cjs/serve.cjs +17 -142
- package/dist/cjs/serve.js +9 -139
- package/dist/cjs/serve.js.map +2 -2
- package/dist/cjs/serve.native.js +8 -148
- package/dist/cjs/serve.native.js.map +2 -2
- package/dist/cjs/server/oneServe.cjs +173 -0
- package/dist/cjs/server/oneServe.js +160 -0
- package/dist/cjs/server/oneServe.js.map +6 -0
- package/dist/cjs/server/oneServe.native.js +174 -0
- package/dist/cjs/server/oneServe.native.js.map +6 -0
- package/dist/cjs/server/setupBuildOptions.cjs +28 -0
- package/dist/cjs/server/setupBuildOptions.js +23 -0
- package/dist/cjs/server/setupBuildOptions.js.map +6 -0
- package/dist/cjs/server/setupBuildOptions.native.js +29 -0
- package/dist/cjs/server/setupBuildOptions.native.js.map +6 -0
- package/dist/cjs/utils/ensureExists.cjs +28 -0
- package/dist/cjs/utils/ensureExists.js +24 -0
- package/dist/cjs/utils/ensureExists.js.map +6 -0
- package/dist/cjs/utils/ensureExists.native.js +29 -0
- package/dist/cjs/utils/ensureExists.native.js.map +6 -0
- package/dist/cjs/vite/build.cjs +38 -18
- package/dist/cjs/vite/build.js +38 -14
- package/dist/cjs/vite/build.js.map +1 -1
- package/dist/cjs/vite/build.native.js +29 -15
- package/dist/cjs/vite/build.native.js.map +2 -2
- package/dist/cjs/vite/one.cjs +4 -4
- package/dist/cjs/vite/one.js +3 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +3 -2
- package/dist/cjs/vite/one.native.js.map +2 -2
- package/dist/esm/cli.js +5 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +5 -1
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +5 -1
- package/dist/esm/cli.native.js.map +2 -2
- package/dist/esm/config.js +3 -3
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/config.mjs +6 -6
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +3 -3
- package/dist/esm/config.native.js.map +2 -2
- package/dist/esm/serve-worker.js +13 -0
- package/dist/esm/serve-worker.js.map +6 -0
- package/dist/esm/serve-worker.mjs +11 -0
- package/dist/esm/serve-worker.mjs.map +1 -0
- package/dist/esm/serve-worker.native.js +13 -0
- package/dist/esm/serve-worker.native.js.map +6 -0
- package/dist/esm/serve.js +10 -140
- package/dist/esm/serve.js.map +2 -2
- package/dist/esm/serve.mjs +17 -142
- package/dist/esm/serve.mjs.map +1 -1
- package/dist/esm/serve.native.js +9 -149
- package/dist/esm/serve.native.js.map +2 -2
- package/dist/esm/server/oneServe.js +137 -0
- package/dist/esm/server/oneServe.js.map +6 -0
- package/dist/esm/server/oneServe.mjs +139 -0
- package/dist/esm/server/oneServe.mjs.map +1 -0
- package/dist/esm/server/oneServe.native.js +146 -0
- package/dist/esm/server/oneServe.native.js.map +6 -0
- package/dist/esm/server/setupBuildOptions.js +7 -0
- package/dist/esm/server/setupBuildOptions.js.map +6 -0
- package/dist/esm/server/setupBuildOptions.mjs +5 -0
- package/dist/esm/server/setupBuildOptions.mjs.map +1 -0
- package/dist/esm/server/setupBuildOptions.native.js +8 -0
- package/dist/esm/server/setupBuildOptions.native.js.map +6 -0
- package/dist/esm/utils/ensureExists.js +8 -0
- package/dist/esm/utils/ensureExists.js.map +6 -0
- package/dist/esm/utils/ensureExists.mjs +5 -0
- package/dist/esm/utils/ensureExists.mjs.map +1 -0
- package/dist/esm/utils/ensureExists.native.js +8 -0
- package/dist/esm/utils/ensureExists.native.js.map +6 -0
- package/dist/esm/vite/build.js +38 -14
- package/dist/esm/vite/build.js.map +1 -1
- package/dist/esm/vite/build.mjs +38 -18
- package/dist/esm/vite/build.mjs.map +1 -1
- package/dist/esm/vite/build.native.js +29 -15
- package/dist/esm/vite/build.native.js.map +2 -2
- package/dist/esm/vite/one.js +3 -2
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +4 -4
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +3 -2
- package/dist/esm/vite/one.native.js.map +2 -2
- package/package.json +14 -9
- package/src/cli.ts +4 -0
- package/src/config.ts +2 -3
- package/src/serve-worker.ts +19 -0
- package/src/serve.ts +13 -217
- package/src/server/oneServe.ts +216 -0
- package/src/server/setupBuildOptions.ts +7 -0
- package/src/utils/ensureExists.ts +5 -0
- package/src/vite/build.ts +43 -23
- package/src/vite/one.ts +2 -3
- package/src/vite/types.ts +2 -3
- package/types/config.d.ts.map +1 -1
- package/types/serve-worker.d.ts +3 -0
- package/types/serve-worker.d.ts.map +1 -0
- package/types/serve.d.ts +1 -1
- package/types/serve.d.ts.map +1 -1
- package/types/server/oneServe.d.ts +5 -0
- package/types/server/oneServe.d.ts.map +1 -0
- package/types/server/setupBuildOptions.d.ts +3 -0
- package/types/server/setupBuildOptions.d.ts.map +1 -0
- package/types/utils/ensureExists.d.ts +2 -0
- package/types/utils/ensureExists.d.ts.map +1 -0
- package/types/vite/build.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/types.d.ts +2 -2
- package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,137 @@
|
|
1
|
+
import { join } from "node:path";
|
2
|
+
import { getServerEntry } from "vxrn/serve";
|
3
|
+
async function oneServe(oneOptions, vxrnOptions, buildInfo, app, serveStatic = !0) {
|
4
|
+
const { createHandleRequest } = await import("../createHandleRequest"), { isResponse } = await import("../utils/isResponse"), { isStatusRedirect } = await import("../utils/isStatus"), { resolveAPIRequest } = await import("../vite/resolveAPIRequest"), isAPIRequest = /* @__PURE__ */ new WeakMap(), root = vxrnOptions.root || ".", redirects = oneOptions.web?.redirects;
|
5
|
+
if (redirects)
|
6
|
+
for (const redirect of redirects)
|
7
|
+
app.get(redirect.source, (context) => {
|
8
|
+
const destinationUrl = redirect.destination.replace(/:\w+/g, (param) => {
|
9
|
+
const paramName = param.substring(1);
|
10
|
+
return context.req.param(paramName) || "";
|
11
|
+
});
|
12
|
+
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
13
|
+
});
|
14
|
+
if (!buildInfo)
|
15
|
+
throw new Error("No build info found, have you run build?");
|
16
|
+
const { routeMap, builtRoutes } = buildInfo, routeToBuildInfo = {};
|
17
|
+
for (const route of builtRoutes) {
|
18
|
+
routeToBuildInfo[route.cleanPath] = route;
|
19
|
+
const bracketRoutePath = route.cleanPath.split("/").map((part) => part[0] === ":" ? `[${part.slice(1)}]` : part).join("/");
|
20
|
+
routeToBuildInfo[bracketRoutePath] = route;
|
21
|
+
}
|
22
|
+
const serverOptions = {
|
23
|
+
...oneOptions,
|
24
|
+
root
|
25
|
+
}, render = (await import(getServerEntry(serverOptions))).default.render, apiCJS = oneOptions.build?.api?.outputFormat === "cjs", handleRequest = createHandleRequest(
|
26
|
+
{},
|
27
|
+
{
|
28
|
+
async handleAPI({ route, request, loaderProps }) {
|
29
|
+
const apiFile = join(
|
30
|
+
process.cwd(),
|
31
|
+
"dist",
|
32
|
+
"api",
|
33
|
+
route.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js")
|
34
|
+
);
|
35
|
+
return isAPIRequest.set(request, !0), resolveAPIRequest(
|
36
|
+
async () => {
|
37
|
+
try {
|
38
|
+
return await import(apiFile);
|
39
|
+
} catch (err) {
|
40
|
+
return console.error(`
|
41
|
+
[one] Error importing API route at ${apiFile}:
|
42
|
+
|
43
|
+
${err}
|
44
|
+
|
45
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
46
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
47
|
+
|
48
|
+
\u{1F41E} For a better error message run "node" and enter:
|
49
|
+
|
50
|
+
import('${apiFile}')
|
51
|
+
|
52
|
+
`), {};
|
53
|
+
}
|
54
|
+
},
|
55
|
+
request,
|
56
|
+
loaderProps?.params || {}
|
57
|
+
);
|
58
|
+
},
|
59
|
+
async handleSSR({ route, url, loaderProps }) {
|
60
|
+
if (route.type === "ssr") {
|
61
|
+
const buildInfo2 = routeToBuildInfo[route.page];
|
62
|
+
if (!buildInfo2)
|
63
|
+
throw new Error(
|
64
|
+
`No buildinfo found for ${url}, route: ${route.page}, in keys: ${Object.keys(routeToBuildInfo)}`
|
65
|
+
);
|
66
|
+
try {
|
67
|
+
const loaderData = await (await import(buildInfo2.serverJsPath)).loader?.(loaderProps), preloads = buildInfo2.preloads, headers = new Headers();
|
68
|
+
return headers.set("content-type", "text/html"), new Response(
|
69
|
+
await render({
|
70
|
+
loaderData,
|
71
|
+
loaderProps,
|
72
|
+
path: loaderProps?.path || "/",
|
73
|
+
preloads
|
74
|
+
}),
|
75
|
+
{
|
76
|
+
headers
|
77
|
+
}
|
78
|
+
);
|
79
|
+
} catch (err) {
|
80
|
+
console.error(`[one] Error rendering SSR route ${route.page}
|
81
|
+
|
82
|
+
${err?.stack ?? err}
|
83
|
+
|
84
|
+
url: ${url}`);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
), htmlFiles = {};
|
90
|
+
if (serveStatic) {
|
91
|
+
const { readFile } = await import("node:fs/promises");
|
92
|
+
for (const key in routeMap)
|
93
|
+
routeToBuildInfo[key]?.type !== "ssr" && (htmlFiles[key] = await readFile(join("dist/client", routeMap[key]), "utf-8"));
|
94
|
+
}
|
95
|
+
app.use(async (context, next) => {
|
96
|
+
const html = htmlFiles[context.req.path];
|
97
|
+
if (html)
|
98
|
+
return context.html(html);
|
99
|
+
try {
|
100
|
+
const request = context.req.raw, response = await handleRequest.handler(request);
|
101
|
+
if (response) {
|
102
|
+
if (isResponse(response)) {
|
103
|
+
if (isStatusRedirect(response.status)) {
|
104
|
+
const location = `${response.headers.get("location") || ""}`;
|
105
|
+
return response.headers.forEach((value, key) => {
|
106
|
+
context.header(key, value);
|
107
|
+
}), context.redirect(location, response.status);
|
108
|
+
}
|
109
|
+
if (isAPIRequest.get(request))
|
110
|
+
try {
|
111
|
+
response.headers.set("Cache-Control", "no-store");
|
112
|
+
} catch (err) {
|
113
|
+
console.info(
|
114
|
+
`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`,
|
115
|
+
err
|
116
|
+
);
|
117
|
+
}
|
118
|
+
return response;
|
119
|
+
}
|
120
|
+
return context.json(
|
121
|
+
response,
|
122
|
+
200,
|
123
|
+
isAPIRequest.get(request) ? {
|
124
|
+
"Cache-Control": "no-store"
|
125
|
+
} : void 0
|
126
|
+
);
|
127
|
+
}
|
128
|
+
} catch (err) {
|
129
|
+
console.error(` [one] Error handling request: ${err.stack}`);
|
130
|
+
}
|
131
|
+
await next();
|
132
|
+
});
|
133
|
+
}
|
134
|
+
export {
|
135
|
+
oneServe
|
136
|
+
};
|
137
|
+
//# sourceMappingURL=oneServe.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/server/oneServe.ts"],
|
4
|
+
"mappings": "AACA,SAAS,YAAY;AAErB,SAAS,sBAAsB;AAI/B,eAAsB,SACpB,YACA,aACA,WACA,KACA,cAAc,IACd;AACA,QAAM,EAAE,oBAAoB,IAAI,MAAM,OAAO,wBAAwB,GAC/D,EAAE,WAAW,IAAI,MAAM,OAAO,qBAAqB,GACnD,EAAE,iBAAiB,IAAI,MAAM,OAAO,mBAAmB,GACvD,EAAE,kBAAkB,IAAI,MAAM,OAAO,2BAA2B,GAEhE,eAAe,oBAAI,QAAsB,GACzC,OAAO,YAAY,QAAQ,KAG3B,YAAY,WAAW,KAAK;AAClC,MAAI;AACF,eAAW,YAAY;AACrB,UAAI,IAAI,SAAS,QAAQ,CAAC,YAAY;AACpC,cAAM,iBAAiB,SAAS,YAAY,QAAQ,SAAS,CAAC,UAAU;AACtE,gBAAM,YAAY,MAAM,UAAU,CAAC;AACnC,iBAAO,QAAQ,IAAI,MAAM,SAAS,KAAK;AAAA,QACzC,CAAC;AACD,eAAO,QAAQ,SAAS,gBAAgB,SAAS,YAAY,MAAM,GAAG;AAAA,MACxE,CAAC;AAIL,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,0CAA0C;AAG5D,QAAM,EAAE,UAAU,YAAY,IAAI,WAE5B,mBAAuD,CAAC;AAC9D,aAAW,SAAS,aAAa;AAC/B,qBAAiB,MAAM,SAAS,IAAI;AAGpC,UAAM,mBAAmB,MAAM,UAC5B,MAAM,GAAG,EACT,IAAI,CAAC,SACG,KAAK,CAAC,MAAM,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,IACjD,EACA,KAAK,GAAG;AACX,qBAAiB,gBAAgB,IAAI;AAAA,EACvC;AAEA,QAAM,gBAAgB;AAAA,IACpB,GAAG;AAAA,IACH;AAAA,EACF,GAKM,UAFQ,MAAM,OADA,eAAe,aAAa,IAG3B,QAAQ,QACvB,SAAS,WAAW,OAAO,KAAK,iBAAiB,OAEjD,gBAAgB;AAAA,IACpB,CAAC;AAAA,IACD;AAAA,MACE,MAAM,UAAU,EAAE,OAAO,SAAS,YAAY,GAAG;AAC/C,cAAM,UAAU;AAAA,UACd,QAAQ,IAAI;AAAA,UACZ;AAAA,UACA;AAAA,UACA,MAAM,KAAK,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,KAAK,SAAS,SAAS;AAAA,QACtE;AAEA,4BAAa,IAAI,SAAS,EAAI,GAEvB;AAAA,UACL,YAAY;AACV,gBAAI;AACF,qBAAO,MAAM,OAAO;AAAA,YACtB,SAAS,KAAK;AACZ,6BAAQ,MAAM;AAAA,sCAAyC,OAAO;AAAA;AAAA,IAExE,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOK,OAAO;AAAA;AAAA,CAAQ,GACN,CAAC;AAAA,YACV;AAAA,UACF;AAAA,UACA;AAAA,UACA,aAAa,UAAU,CAAC;AAAA,QAC1B;AAAA,MACF;AAAA,MAEA,MAAM,UAAU,EAAE,OAAO,KAAK,YAAY,GAAG;AAC3C,YAAI,MAAM,SAAS,OAAO;AACxB,gBAAMA,aAAY,iBAAiB,MAAM,IAAI;AAC7C,cAAI,CAACA;AACH,kBAAM,IAAI;AAAA,cACR,0BAA0B,GAAG,YAAY,MAAM,IAAI,cAAc,OAAO,KAAK,gBAAgB,CAAC;AAAA,YAChG;AAGF,cAAI;AAEF,kBAAM,aAAa,OADF,MAAM,OAAOA,WAAU,eACN,SAAS,WAAW,GAChD,WAAWA,WAAU,UAErB,UAAU,IAAI,QAAQ;AAC5B,2BAAQ,IAAI,gBAAgB,WAAW,GAEhC,IAAI;AAAA,cACT,MAAM,OAAO;AAAA,gBACX;AAAA,gBACA;AAAA,gBACA,MAAM,aAAa,QAAQ;AAAA,gBAC3B;AAAA,cACF,CAAC;AAAA,cACD;AAAA,gBACE;AAAA,cACF;AAAA,YACF;AAAA,UACF,SAAS,KAAK;AACZ,oBAAQ,MAAM,mCAAmC,MAAM,IAAI;AAAA;AAAA,IAEnE,KAAM,SAAY,GAAG;AAAA;AAAA,SAEhB,GAAG,EAAE;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAGM,YAAoC,CAAC;AAE3C,MAAI,aAAa;AACf,UAAM,EAAE,SAAS,IAAI,MAAM,OAAO,kBAAkB;AAEpD,eAAW,OAAO;AAGhB,MAFa,iBAAiB,GAAG,GAEvB,SAAS,UAKnB,UAAU,GAAG,IAAI,MAAM,SAAS,KAAK,eAAe,SAAS,GAAG,CAAC,GAAG,OAAO;AAAA,EAE/E;AAEA,MAAI,IAAI,OAAO,SAAS,SAAS;AAE/B,UAAM,OAAO,UAAU,QAAQ,IAAI,IAAI;AACvC,QAAI;AACF,aAAO,QAAQ,KAAK,IAAI;AAG1B,QAAI;AACF,YAAM,UAAU,QAAQ,IAAI,KACtB,WAAW,MAAM,cAAc,QAAQ,OAAO;AAEpD,UAAI,UAAU;AACZ,YAAI,WAAW,QAAQ,GAAG;AACxB,cAAI,iBAAiB,SAAS,MAAM,GAAG;AACrC,kBAAM,WAAW,GAAG,SAAS,QAAQ,IAAI,UAAU,KAAK,EAAE;AAC1D,4BAAS,QAAQ,QAAQ,CAAC,OAAO,QAAQ;AACvC,sBAAQ,OAAO,KAAK,KAAK;AAAA,YAC3B,CAAC,GACM,QAAQ,SAAS,UAAU,SAAS,MAAM;AAAA,UACnD;AAEA,cAAI,aAAa,IAAI,OAAO;AAC1B,gBAAI;AAEF,uBAAS,QAAQ,IAAI,iBAAiB,UAAU;AAAA,YAClD,SAAS,KAAK;AACZ,sBAAQ;AAAA,gBACN,6CACE,QAAQ,IAAI,IACd,wBAAwB,SAAS,QAAQ,IAAI,eAAe,CAAC;AAAA,gBAC7D;AAAA,cACF;AAAA,YACF;AAGF,iBAAO;AAAA,QACT;AAEA,eAAO,QAAQ;AAAA,UACb;AAAA,UACA;AAAA,UACA,aAAa,IAAI,OAAO,IACpB;AAAA,YACE,iBAAiB;AAAA,UACnB,IACA;AAAA,QACN;AAAA,MACF;AAAA,IACF,SAAS,KAAK;AACZ,cAAQ,MAAM,kCAAmC,IAAY,KAAQ,EAAE;AAAA,IACzE;AAEA,UAAM,KAAK;AAAA,EACb,CAAC;AACH;",
|
5
|
+
"names": ["buildInfo"]
|
6
|
+
}
|
@@ -0,0 +1,139 @@
|
|
1
|
+
import { join } from "node:path";
|
2
|
+
import { getServerEntry } from "vxrn/serve";
|
3
|
+
async function oneServe(oneOptions, vxrnOptions, buildInfo, app, serveStatic = !0) {
|
4
|
+
const {
|
5
|
+
createHandleRequest
|
6
|
+
} = await import("../createHandleRequest.mjs"),
|
7
|
+
{
|
8
|
+
isResponse
|
9
|
+
} = await import("../utils/isResponse.mjs"),
|
10
|
+
{
|
11
|
+
isStatusRedirect
|
12
|
+
} = await import("../utils/isStatus.mjs"),
|
13
|
+
{
|
14
|
+
resolveAPIRequest
|
15
|
+
} = await import("../vite/resolveAPIRequest.mjs"),
|
16
|
+
isAPIRequest = /* @__PURE__ */new WeakMap(),
|
17
|
+
root = vxrnOptions.root || ".",
|
18
|
+
redirects = oneOptions.web?.redirects;
|
19
|
+
if (redirects) for (const redirect of redirects) app.get(redirect.source, context => {
|
20
|
+
const destinationUrl = redirect.destination.replace(/:\w+/g, param => {
|
21
|
+
const paramName = param.substring(1);
|
22
|
+
return context.req.param(paramName) || "";
|
23
|
+
});
|
24
|
+
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
25
|
+
});
|
26
|
+
if (!buildInfo) throw new Error("No build info found, have you run build?");
|
27
|
+
const {
|
28
|
+
routeMap,
|
29
|
+
builtRoutes
|
30
|
+
} = buildInfo,
|
31
|
+
routeToBuildInfo = {};
|
32
|
+
for (const route of builtRoutes) {
|
33
|
+
routeToBuildInfo[route.cleanPath] = route;
|
34
|
+
const bracketRoutePath = route.cleanPath.split("/").map(part => part[0] === ":" ? `[${part.slice(1)}]` : part).join("/");
|
35
|
+
routeToBuildInfo[bracketRoutePath] = route;
|
36
|
+
}
|
37
|
+
const serverOptions = {
|
38
|
+
...oneOptions,
|
39
|
+
root
|
40
|
+
},
|
41
|
+
render = (await import(getServerEntry(serverOptions))).default.render,
|
42
|
+
apiCJS = oneOptions.build?.api?.outputFormat === "cjs",
|
43
|
+
handleRequest = createHandleRequest({}, {
|
44
|
+
async handleAPI({
|
45
|
+
route,
|
46
|
+
request,
|
47
|
+
loaderProps
|
48
|
+
}) {
|
49
|
+
const apiFile = join(process.cwd(), "dist", "api", route.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js"));
|
50
|
+
return isAPIRequest.set(request, !0), resolveAPIRequest(async () => {
|
51
|
+
try {
|
52
|
+
return await import(apiFile);
|
53
|
+
} catch (err) {
|
54
|
+
return console.error(`
|
55
|
+
[one] Error importing API route at ${apiFile}:
|
56
|
+
|
57
|
+
${err}
|
58
|
+
|
59
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
60
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
61
|
+
|
62
|
+
\u{1F41E} For a better error message run "node" and enter:
|
63
|
+
|
64
|
+
import('${apiFile}')
|
65
|
+
|
66
|
+
`), {};
|
67
|
+
}
|
68
|
+
}, request, loaderProps?.params || {});
|
69
|
+
},
|
70
|
+
async handleSSR({
|
71
|
+
route,
|
72
|
+
url,
|
73
|
+
loaderProps
|
74
|
+
}) {
|
75
|
+
if (route.type === "ssr") {
|
76
|
+
const buildInfo2 = routeToBuildInfo[route.page];
|
77
|
+
if (!buildInfo2) throw new Error(`No buildinfo found for ${url}, route: ${route.page}, in keys: ${Object.keys(routeToBuildInfo)}`);
|
78
|
+
try {
|
79
|
+
const loaderData = await (await import(buildInfo2.serverJsPath)).loader?.(loaderProps),
|
80
|
+
preloads = buildInfo2.preloads,
|
81
|
+
headers = new Headers();
|
82
|
+
return headers.set("content-type", "text/html"), new Response(await render({
|
83
|
+
loaderData,
|
84
|
+
loaderProps,
|
85
|
+
path: loaderProps?.path || "/",
|
86
|
+
preloads
|
87
|
+
}), {
|
88
|
+
headers
|
89
|
+
});
|
90
|
+
} catch (err) {
|
91
|
+
console.error(`[one] Error rendering SSR route ${route.page}
|
92
|
+
|
93
|
+
${err?.stack ?? err}
|
94
|
+
|
95
|
+
url: ${url}`);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}),
|
100
|
+
htmlFiles = {};
|
101
|
+
if (serveStatic) {
|
102
|
+
const {
|
103
|
+
readFile
|
104
|
+
} = await import("node:fs/promises");
|
105
|
+
for (const key in routeMap) routeToBuildInfo[key]?.type !== "ssr" && (htmlFiles[key] = await readFile(join("dist/client", routeMap[key]), "utf-8"));
|
106
|
+
}
|
107
|
+
app.use(async (context, next) => {
|
108
|
+
const html = htmlFiles[context.req.path];
|
109
|
+
if (html) return context.html(html);
|
110
|
+
try {
|
111
|
+
const request = context.req.raw,
|
112
|
+
response = await handleRequest.handler(request);
|
113
|
+
if (response) {
|
114
|
+
if (isResponse(response)) {
|
115
|
+
if (isStatusRedirect(response.status)) {
|
116
|
+
const location = `${response.headers.get("location") || ""}`;
|
117
|
+
return response.headers.forEach((value, key) => {
|
118
|
+
context.header(key, value);
|
119
|
+
}), context.redirect(location, response.status);
|
120
|
+
}
|
121
|
+
if (isAPIRequest.get(request)) try {
|
122
|
+
response.headers.set("Cache-Control", "no-store");
|
123
|
+
} catch (err) {
|
124
|
+
console.info(`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`, err);
|
125
|
+
}
|
126
|
+
return response;
|
127
|
+
}
|
128
|
+
return context.json(response, 200, isAPIRequest.get(request) ? {
|
129
|
+
"Cache-Control": "no-store"
|
130
|
+
} : void 0);
|
131
|
+
}
|
132
|
+
} catch (err) {
|
133
|
+
console.error(` [one] Error handling request: ${err.stack}`);
|
134
|
+
}
|
135
|
+
await next();
|
136
|
+
});
|
137
|
+
}
|
138
|
+
export { oneServe };
|
139
|
+
//# sourceMappingURL=oneServe.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["join","getServerEntry","oneServe","oneOptions","vxrnOptions","buildInfo","app","serveStatic","createHandleRequest","isResponse","isStatusRedirect","resolveAPIRequest","isAPIRequest","WeakMap","root","redirects","web","redirect","get","source","context","destinationUrl","destination","replace","param","paramName","substring","req","permanent","Error","routeMap","builtRoutes","routeToBuildInfo","route","cleanPath","bracketRoutePath","split","map","part","slice","serverOptions","render","default","apiCJS","build","api","outputFormat","handleRequest","handleAPI","request","loaderProps","apiFile","process","cwd","page","set","err","console","error","params","handleSSR","url","type","buildInfo2","Object","keys","loaderData","serverJsPath","loader","preloads","headers","Headers","Response","path","stack","htmlFiles","readFile","key","use","next","html","raw","response","handler","status","location","forEach","value","header","info","json"],"sources":["../../../src/server/oneServe.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,146 @@
|
|
1
|
+
import { join } from "node:path";
|
2
|
+
import { getServerEntry } from "vxrn/serve";
|
3
|
+
async function oneServe(oneOptions, vxrnOptions, buildInfo, app) {
|
4
|
+
var serveStatic = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, _oneOptions_web, _oneOptions_build_api, _oneOptions_build, { createHandleRequest } = await import("../createHandleRequest"), { isResponse } = await import("../utils/isResponse"), { isStatusRedirect } = await import("../utils/isStatus"), { resolveAPIRequest } = await import("../vite/resolveAPIRequest"), isAPIRequest = /* @__PURE__ */ new WeakMap(), root = vxrnOptions.root || ".", redirects = (_oneOptions_web = oneOptions.web) === null || _oneOptions_web === void 0 ? void 0 : _oneOptions_web.redirects;
|
5
|
+
if (redirects) {
|
6
|
+
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
7
|
+
try {
|
8
|
+
for (var _loop = function() {
|
9
|
+
var redirect = _step.value;
|
10
|
+
app.get(redirect.source, function(context) {
|
11
|
+
var destinationUrl = redirect.destination.replace(/:\w+/g, function(param) {
|
12
|
+
var paramName = param.substring(1);
|
13
|
+
return context.req.param(paramName) || "";
|
14
|
+
});
|
15
|
+
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
16
|
+
});
|
17
|
+
}, _iterator = redirects[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
|
18
|
+
} catch (err) {
|
19
|
+
_didIteratorError = !0, _iteratorError = err;
|
20
|
+
} finally {
|
21
|
+
try {
|
22
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
23
|
+
} finally {
|
24
|
+
if (_didIteratorError)
|
25
|
+
throw _iteratorError;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
if (!buildInfo)
|
30
|
+
throw new Error("No build info found, have you run build?");
|
31
|
+
var { routeMap, builtRoutes } = buildInfo, routeToBuildInfo = {}, _iteratorNormalCompletion1 = !0, _didIteratorError1 = !1, _iteratorError1 = void 0;
|
32
|
+
try {
|
33
|
+
for (var _iterator1 = builtRoutes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
|
34
|
+
var route = _step1.value;
|
35
|
+
routeToBuildInfo[route.cleanPath] = route;
|
36
|
+
var bracketRoutePath = route.cleanPath.split("/").map(function(part) {
|
37
|
+
return part[0] === ":" ? `[${part.slice(1)}]` : part;
|
38
|
+
}).join("/");
|
39
|
+
routeToBuildInfo[bracketRoutePath] = route;
|
40
|
+
}
|
41
|
+
} catch (err) {
|
42
|
+
_didIteratorError1 = !0, _iteratorError1 = err;
|
43
|
+
} finally {
|
44
|
+
try {
|
45
|
+
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
46
|
+
} finally {
|
47
|
+
if (_didIteratorError1)
|
48
|
+
throw _iteratorError1;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
var serverOptions = {
|
52
|
+
...oneOptions,
|
53
|
+
root
|
54
|
+
}, entryServer = getServerEntry(serverOptions), entry = await import(entryServer), render = entry.default.render, apiCJS = ((_oneOptions_build = oneOptions.build) === null || _oneOptions_build === void 0 || (_oneOptions_build_api = _oneOptions_build.api) === null || _oneOptions_build_api === void 0 ? void 0 : _oneOptions_build_api.outputFormat) === "cjs", handleRequest = createHandleRequest({}, {
|
55
|
+
async handleAPI(param) {
|
56
|
+
var { route: route2, request, loaderProps } = param, apiFile = join(process.cwd(), "dist", "api", route2.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js"));
|
57
|
+
return isAPIRequest.set(request, !0), resolveAPIRequest(async function() {
|
58
|
+
try {
|
59
|
+
return await import(apiFile);
|
60
|
+
} catch (err) {
|
61
|
+
return console.error(`
|
62
|
+
[one] Error importing API route at ${apiFile}:
|
63
|
+
|
64
|
+
${err}
|
65
|
+
|
66
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
67
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
68
|
+
|
69
|
+
\u{1F41E} For a better error message run "node" and enter:
|
70
|
+
|
71
|
+
import('${apiFile}')
|
72
|
+
|
73
|
+
`), {};
|
74
|
+
}
|
75
|
+
}, request, loaderProps?.params || {});
|
76
|
+
},
|
77
|
+
async handleSSR(param) {
|
78
|
+
var { route: route2, url, loaderProps } = param;
|
79
|
+
if (route2.type === "ssr") {
|
80
|
+
var _$buildInfo = routeToBuildInfo[route2.page];
|
81
|
+
if (!_$buildInfo)
|
82
|
+
throw new Error(`No buildinfo found for ${url}, route: ${route2.page}, in keys: ${Object.keys(routeToBuildInfo)}`);
|
83
|
+
try {
|
84
|
+
var _exported_loader, exported = await import(_$buildInfo.serverJsPath), loaderData = await ((_exported_loader = exported.loader) === null || _exported_loader === void 0 ? void 0 : _exported_loader.call(exported, loaderProps)), preloads = _$buildInfo.preloads, headers = new Headers();
|
85
|
+
return headers.set("content-type", "text/html"), new Response(await render({
|
86
|
+
loaderData,
|
87
|
+
loaderProps,
|
88
|
+
path: loaderProps?.path || "/",
|
89
|
+
preloads
|
90
|
+
}), {
|
91
|
+
headers
|
92
|
+
});
|
93
|
+
} catch (err) {
|
94
|
+
var _err_stack;
|
95
|
+
console.error(`[one] Error rendering SSR route ${route2.page}
|
96
|
+
|
97
|
+
${(_err_stack = err?.stack) !== null && _err_stack !== void 0 ? _err_stack : err}
|
98
|
+
|
99
|
+
url: ${url}`);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}), htmlFiles = {};
|
104
|
+
if (serveStatic) {
|
105
|
+
var { readFile } = await import("node:fs/promises");
|
106
|
+
for (var key in routeMap) {
|
107
|
+
var info = routeToBuildInfo[key];
|
108
|
+
info?.type !== "ssr" && (htmlFiles[key] = await readFile(join("dist/client", routeMap[key]), "utf-8"));
|
109
|
+
}
|
110
|
+
}
|
111
|
+
app.use(async function(context, next) {
|
112
|
+
var html = htmlFiles[context.req.path];
|
113
|
+
if (html)
|
114
|
+
return context.html(html);
|
115
|
+
try {
|
116
|
+
var request = context.req.raw, response = await handleRequest.handler(request);
|
117
|
+
if (response) {
|
118
|
+
if (isResponse(response)) {
|
119
|
+
if (isStatusRedirect(response.status)) {
|
120
|
+
var location = `${response.headers.get("location") || ""}`;
|
121
|
+
return response.headers.forEach(function(value, key2) {
|
122
|
+
context.header(key2, value);
|
123
|
+
}), context.redirect(location, response.status);
|
124
|
+
}
|
125
|
+
if (isAPIRequest.get(request))
|
126
|
+
try {
|
127
|
+
response.headers.set("Cache-Control", "no-store");
|
128
|
+
} catch (err) {
|
129
|
+
console.info(`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`, err);
|
130
|
+
}
|
131
|
+
return response;
|
132
|
+
}
|
133
|
+
return context.json(response, 200, isAPIRequest.get(request) ? {
|
134
|
+
"Cache-Control": "no-store"
|
135
|
+
} : void 0);
|
136
|
+
}
|
137
|
+
} catch (err) {
|
138
|
+
console.error(` [one] Error handling request: ${err.stack}`);
|
139
|
+
}
|
140
|
+
await next();
|
141
|
+
});
|
142
|
+
}
|
143
|
+
export {
|
144
|
+
oneServe
|
145
|
+
};
|
146
|
+
//# sourceMappingURL=oneServe.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/server/Users/n8/one/packages/one/src/server/oneServe.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": ["join", "getServerEntry", "oneServe", "oneOptions", "vxrnOptions", "buildInfo", "app", "serveStatic", "createHandleRequest", "isResponse", "isStatusRedirect", "resolveAPIRequest", "isAPIRequest", "WeakMap", "root", "redirects", "web", "redirect", "get", "source", "context", "destinationUrl", "destination", "replace", "param", "paramName", "substring", "req", "permanent", "Error", "routeMap", "builtRoutes", "routeToBuildInfo", "route", "cleanPath", "bracketRoutePath", "split", "map", "part", "slice", "serverOptions", "entryServer", "entry", "render", "default", "apiCJS", "build", "api", "outputFormat", "handleRequest", "handleAPI", "request", "loaderProps", "apiFile", "process", "cwd", "page", "set", "err", "console", "error", "params", "handleSSR", "url", "type", "Object", "keys", "exported", "serverJsPath", "loaderData", "loader", "preloads", "headers", "Headers", "Response", "path", "htmlFiles", "readFile", "key", "info", "use", "next", "html", "raw", "response", "handler", "status", "location", "forEach", "value", "header", "json", "undefined"]
|
6
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
function setupBuildInfo(buildInfo) {
|
2
|
+
process.env.ONE_CACHE_KEY ||= buildInfo.constants.CACHE_KEY, process.env.ONE_DEFAULT_RENDER_MODE ||= buildInfo.oneOptions?.web?.defaultRenderMode || "ssg";
|
3
|
+
}
|
4
|
+
export {
|
5
|
+
setupBuildInfo
|
6
|
+
};
|
7
|
+
//# sourceMappingURL=setupBuildOptions.js.map
|
@@ -0,0 +1,5 @@
|
|
1
|
+
function setupBuildInfo(buildInfo) {
|
2
|
+
process.env.ONE_CACHE_KEY ||= buildInfo.constants.CACHE_KEY, process.env.ONE_DEFAULT_RENDER_MODE ||= buildInfo.oneOptions?.web?.defaultRenderMode || "ssg";
|
3
|
+
}
|
4
|
+
export { setupBuildInfo };
|
5
|
+
//# sourceMappingURL=setupBuildOptions.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["setupBuildInfo","buildInfo","process","env","ONE_CACHE_KEY","constants","CACHE_KEY","ONE_DEFAULT_RENDER_MODE","oneOptions","web","defaultRenderMode"],"sources":["../../../src/server/setupBuildOptions.ts"],"sourcesContent":[null],"mappings":"AAEO,SAASA,eAAeC,SAAA,EAA0B;EAEvDC,OAAA,CAAQC,GAAA,CAAIC,aAAA,KAAkBH,SAAA,CAAUI,SAAA,CAAUC,SAAA,EAClDJ,OAAA,CAAQC,GAAA,CAAII,uBAAA,KAA4BN,SAAA,CAAUO,UAAA,EAAYC,GAAA,EAAKC,iBAAA,IAAqB;AAC1F","ignoreList":[]}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
function setupBuildInfo(buildInfo) {
|
2
|
+
var _buildInfo_oneOptions_web, _buildInfo_oneOptions, _process_env, _process_env1;
|
3
|
+
(_process_env = process.env).ONE_CACHE_KEY || (_process_env.ONE_CACHE_KEY = buildInfo.constants.CACHE_KEY), (_process_env1 = process.env).ONE_DEFAULT_RENDER_MODE || (_process_env1.ONE_DEFAULT_RENDER_MODE = ((_buildInfo_oneOptions = buildInfo.oneOptions) === null || _buildInfo_oneOptions === void 0 || (_buildInfo_oneOptions_web = _buildInfo_oneOptions.web) === null || _buildInfo_oneOptions_web === void 0 ? void 0 : _buildInfo_oneOptions_web.defaultRenderMode) || "ssg");
|
4
|
+
}
|
5
|
+
export {
|
6
|
+
setupBuildInfo
|
7
|
+
};
|
8
|
+
//# sourceMappingURL=setupBuildOptions.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../src/server/Users/n8/one/packages/one/src/server/setupBuildOptions.ts"],
|
4
|
+
"mappings": "AAEO,SAASA,eAAeC,WAAwB;MAGbA,2BAAAA,uBADxCC,cACAA;AADAA,GAAAA,eAAAA,QAAQC,KAAIC,kBAAZF,aAAYE,gBAAkBH,UAAUI,UAAUC,aAClDJ,gBAAAA,QAAQC,KAAII,4BAAZL,cAAYK,4BAA4BN,wBAAAA,UAAUO,gBAAU,QAApBP,0BAAAA,WAAAA,4BAAAA,sBAAsBQ,SAAG,QAAzBR,8BAAAA,SAAAA,SAAAA,0BAA2BS,sBAAqB;AAC1F;",
|
5
|
+
"names": ["setupBuildInfo", "buildInfo", "process", "env", "ONE_CACHE_KEY", "constants", "CACHE_KEY", "ONE_DEFAULT_RENDER_MODE", "oneOptions", "web", "defaultRenderMode"]
|
6
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["ensureExists","value","Error"],"sources":["../../../src/utils/ensureExists.ts"],"sourcesContent":[null],"mappings":"AAAO,SAASA,aAAgBC,KAAA,EAAiD;EAC/E,IAA2BA,KAAA,IAAU,MACnC,MAAM,IAAIC,KAAA,CAAM,gBAAgB;AAEpC","ignoreList":[]}
|
package/dist/esm/vite/build.js
CHANGED
@@ -22,13 +22,13 @@ process.on("uncaughtException", (err) => {
|
|
22
22
|
});
|
23
23
|
async function build(args) {
|
24
24
|
labelProcess("build");
|
25
|
-
const
|
25
|
+
const oneOptions = await loadUserOneOptions("build"), serverOutputFormat = oneOptions.build?.server?.outputFormat ?? "esm";
|
26
26
|
process.env.VXRN_REACT_19 = "1", process.env.ONE_SERVER_URL || console.warn(
|
27
27
|
"\u26A0\uFE0F No ONE_SERVER_URL environment set, set it in your .env to your target deploy URL"
|
28
28
|
);
|
29
29
|
const vxrnOutput = await vxrnBuild(
|
30
30
|
{
|
31
|
-
server:
|
31
|
+
server: oneOptions.server,
|
32
32
|
build: {
|
33
33
|
analyze: !0,
|
34
34
|
server: {
|
@@ -52,7 +52,7 @@ async function build(args) {
|
|
52
52
|
`);
|
53
53
|
const processEnvDefines = Object.fromEntries(
|
54
54
|
Object.entries(process.env).map(([key, value]) => [`process.env.${key}`, JSON.stringify(value)])
|
55
|
-
), apiRouteExternalRegex = buildRegexExcludingDeps(optimizeDeps.include), apiEntryPoints = manifest.apiRoutes.reduce((entries, { page, file }) => (entries[page.slice(1) + ".js"] = join("app", file), entries), {}), apiOutputFormat =
|
55
|
+
), apiRouteExternalRegex = buildRegexExcludingDeps(optimizeDeps.include), apiEntryPoints = manifest.apiRoutes.reduce((entries, { page, file }) => (entries[page.slice(1) + ".js"] = join("app", file), entries), {}), apiOutputFormat = oneOptions?.build?.api?.outputFormat ?? serverOutputFormat, treeshake = oneOptions?.build?.api?.treeshake;
|
56
56
|
await viteBuild(
|
57
57
|
mergeConfig(apiBuildConfig, {
|
58
58
|
appType: "custom",
|
@@ -178,8 +178,8 @@ async function build(args) {
|
|
178
178
|
const clientKey = `app${layout.contextKey.slice(1)}`;
|
179
179
|
return vxrnOutput.clientManifest[clientKey];
|
180
180
|
}) ?? [], layoutImports = layoutEntries.flatMap((entry) => [entry.file, ...collectImports(entry)]), preloadSetupFilePreloads = (() => {
|
181
|
-
if (
|
182
|
-
const needle =
|
181
|
+
if (oneOptions.setupFile) {
|
182
|
+
const needle = oneOptions.setupFile.replace(/^\.\//, "");
|
183
183
|
for (const file2 in vxrnOutput.clientManifest)
|
184
184
|
if (file2 === needle)
|
185
185
|
return [
|
@@ -291,22 +291,46 @@ ${JSON.stringify(params || null, null, 2)}`
|
|
291
291
|
}
|
292
292
|
}
|
293
293
|
await moveAllFiles(staticDir, clientDir), await FSExtra.rm(staticDir, { force: !0, recursive: !0 });
|
294
|
-
const buildInfoForWriting = {
|
295
|
-
|
294
|
+
const routeMap = builtRoutes.reduce((acc, { cleanPath, htmlPath }) => (acc[cleanPath] = htmlPath, acc), {}), buildInfoForWriting = {
|
295
|
+
oneOptions,
|
296
|
+
routeMap,
|
296
297
|
builtRoutes,
|
297
298
|
constants: JSON.parse(JSON.stringify({ ...constants }))
|
298
|
-
}, buildInfo = {
|
299
|
-
...buildInfoForWriting,
|
300
|
-
...vxrnOutput
|
301
299
|
};
|
302
300
|
await FSExtra.writeJSON(toAbsolute("dist/buildInfo.json"), buildInfoForWriting);
|
303
301
|
let postBuildLogs = [];
|
304
|
-
(
|
305
|
-
|
306
|
-
|
302
|
+
switch (oneOptions.web?.deploy ?? options.server?.platform) {
|
303
|
+
case "vercel": {
|
304
|
+
await FSExtra.writeFile(
|
305
|
+
join(options.root, "dist", "index.js"),
|
306
|
+
`import { serve } from 'one/serve'
|
307
307
|
const handler = await serve()
|
308
308
|
export const { GET, POST, PUT, PATCH, OPTIONS } = handler`
|
309
|
-
|
309
|
+
), postBuildLogs.push(`wrote vercel entry to: ${join(".", "dist", "index.js")}`), postBuildLogs.push("point vercel outputDirectory to dist");
|
310
|
+
break;
|
311
|
+
}
|
312
|
+
case "cloudflare": {
|
313
|
+
await FSExtra.writeFile(
|
314
|
+
join(options.root, "dist", "worker.js"),
|
315
|
+
`import { serve } from 'one/serve-worker'
|
316
|
+
|
317
|
+
const buildInfo = ${JSON.stringify(buildInfoForWriting)}
|
318
|
+
|
319
|
+
const handler = await serve(buildInfo)
|
320
|
+
|
321
|
+
export default {
|
322
|
+
fetch: handler.fetch,
|
323
|
+
}`
|
324
|
+
), await FSExtra.writeFile(
|
325
|
+
join(options.root, "dist", "wrangler.toml"),
|
326
|
+
`assets = { directory = "client" }
|
327
|
+
compatibility_date = "2024-12-05"
|
328
|
+
`
|
329
|
+
);
|
330
|
+
break;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
process.env.VXRN_ANALYZE_BUNDLE && postBuildLogs.push(`client build report: ${toAbsolute("dist/report.html")}`), postBuildLogs.length && (console.info(`
|
310
334
|
|
311
335
|
`), postBuildLogs.forEach((log) => {
|
312
336
|
console.info(` \xB7 ${log}`);
|