one 1.1.345 → 1.1.347
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/createApp.cjs +2 -1
- package/dist/cjs/createApp.js +1 -1
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createApp.native.js +1 -1
- package/dist/cjs/createApp.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- 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/setup.js.map +1 -1
- 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 +27 -10
- package/dist/cjs/vite/one.js +23 -3
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +23 -5
- package/dist/cjs/vite/one.native.js.map +2 -2
- package/dist/cjs/vite/plugins/reactCompilerPlugin.cjs +101 -0
- package/dist/cjs/vite/plugins/reactCompilerPlugin.js +82 -0
- package/dist/cjs/vite/plugins/reactCompilerPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/reactCompilerPlugin.native.js +67 -0
- package/dist/cjs/vite/plugins/reactCompilerPlugin.native.js.map +6 -0
- 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/createApp.js +1 -0
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +1 -0
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createApp.native.js +2 -1
- package/dist/esm/createApp.native.js.map +2 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -2
- package/dist/esm/index.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/setup.js.map +1 -1
- package/dist/esm/setup.mjs.map +1 -1
- 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 +27 -6
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +26 -9
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +27 -8
- package/dist/esm/vite/one.native.js.map +2 -2
- package/dist/esm/vite/plugins/reactCompilerPlugin.js +59 -0
- package/dist/esm/vite/plugins/reactCompilerPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/reactCompilerPlugin.mjs +67 -0
- package/dist/esm/vite/plugins/reactCompilerPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/reactCompilerPlugin.native.js +40 -0
- package/dist/esm/vite/plugins/reactCompilerPlugin.native.js.map +6 -0
- package/package.json +26 -12
- package/src/cli.ts +4 -0
- package/src/config.ts +2 -3
- package/src/createApp.native.tsx +2 -1
- package/src/createApp.tsx +2 -0
- package/src/index.ts +1 -2
- package/src/serve-worker.ts +19 -0
- package/src/serve.ts +13 -218
- package/src/server/oneServe.ts +216 -0
- package/src/server/setupBuildOptions.ts +7 -0
- package/src/setup.ts +15 -0
- package/src/utils/ensureExists.ts +5 -0
- package/src/vite/build.ts +44 -23
- package/src/vite/one.ts +35 -8
- package/src/vite/plugins/reactCompilerPlugin.ts +70 -0
- package/src/vite/types.ts +21 -3
- package/types/config.d.ts.map +1 -1
- package/types/createApp.d.ts +1 -0
- package/types/createApp.d.ts.map +1 -1
- package/types/createApp.native.d.ts +1 -0
- package/types/createApp.native.d.ts.map +1 -1
- package/types/index.d.ts +1 -2
- package/types/index.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/setup.d.ts.map +1 -1
- 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/plugins/reactCompilerPlugin.d.ts +3 -0
- package/types/vite/plugins/reactCompilerPlugin.d.ts.map +1 -0
- package/types/vite/types.d.ts +18 -2
- package/types/vite/types.d.ts.map +1 -1
- package/dist/cjs/vite/server.cjs +0 -13
- package/dist/cjs/vite/server.js +0 -16
- package/dist/cjs/vite/server.js.map +0 -6
- package/dist/cjs/vite/server.native.js +0 -18
- package/dist/cjs/vite/server.native.js.map +0 -6
- package/dist/esm/vite/server.js +0 -17
- package/dist/esm/vite/server.js.map +0 -6
- package/dist/esm/vite/server.mjs +0 -13
- package/dist/esm/vite/server.mjs.map +0 -1
- package/dist/esm/vite/server.native.js +0 -18
- package/dist/esm/vite/server.native.js.map +0 -6
- package/src/vite/server.ts +0 -19
- package/types/vite/server.d.ts +0 -2
- package/types/vite/server.d.ts.map +0 -1
package/dist/cjs/serve.js
CHANGED
@@ -25,17 +25,15 @@ __export(serve_exports, {
|
|
25
25
|
serve: () => serve
|
26
26
|
});
|
27
27
|
module.exports = __toCommonJS(serve_exports);
|
28
|
-
var import_polyfills_server = require("./polyfills-server"), import_fs_extra = __toESM(require("fs-extra"), 1),
|
28
|
+
var import_polyfills_server = require("./polyfills-server"), import_fs_extra = __toESM(require("fs-extra"), 1), import_setupBuildOptions = require("./server/setupBuildOptions"), import_ensureExists = require("./utils/ensureExists");
|
29
29
|
process.on("uncaughtException", (err) => {
|
30
30
|
console.error("[one] Uncaught exception", err?.stack || err);
|
31
31
|
});
|
32
32
|
async function serve(args = {}) {
|
33
|
-
const buildInfo = await import_fs_extra.default.readJSON("dist/buildInfo.json");
|
34
|
-
|
35
|
-
const { labelProcess } = await import("./cli/label-process"), { removeUndefined } = await import("./utils/removeUndefined"), {
|
36
|
-
labelProcess("serve"),
|
37
|
-
const oneOptions = await loadUserOneOptions("serve");
|
38
|
-
return process.env.VXRN_REACT_19 = "1", await (0, import_vxrn.serve)({
|
33
|
+
const buildInfo = await import_fs_extra.default.readJSON("dist/buildInfo.json"), { oneOptions } = buildInfo;
|
34
|
+
(0, import_setupBuildOptions.setupBuildInfo)(buildInfo), (0, import_ensureExists.ensureExists)(oneOptions);
|
35
|
+
const { labelProcess } = await import("./cli/label-process"), { removeUndefined } = await import("./utils/removeUndefined"), { loadEnv, serve: vxrnServe } = await import("vxrn/serve"), { oneServe } = await import("./server/oneServe");
|
36
|
+
return labelProcess("serve"), args.loadEnv && await loadEnv("production"), process.env.VXRN_REACT_19 = "1", await vxrnServe({
|
39
37
|
server: {
|
40
38
|
// fallback to one plugin
|
41
39
|
...oneOptions.server,
|
@@ -46,139 +44,11 @@ async function serve(args = {}) {
|
|
46
44
|
compress: args.compress,
|
47
45
|
platform: args.platform,
|
48
46
|
cacheHeaders: args.cacheHeaders
|
49
|
-
})
|
50
|
-
|
51
|
-
|
52
|
-
|
47
|
+
})
|
48
|
+
},
|
49
|
+
async beforeStart(options, app) {
|
50
|
+
await oneServe(oneOptions, options, buildInfo, app);
|
53
51
|
}
|
54
52
|
});
|
55
53
|
}
|
56
|
-
async function oneServe(options, vxrnOptions, buildInfo, app) {
|
57
|
-
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 = options.web?.redirects;
|
58
|
-
if (redirects)
|
59
|
-
for (const redirect of redirects)
|
60
|
-
app.get(redirect.source, (context) => {
|
61
|
-
const destinationUrl = redirect.destination.replace(/:\w+/g, (param) => {
|
62
|
-
const paramName = param.substring(1);
|
63
|
-
return context.req.param(paramName) || "";
|
64
|
-
});
|
65
|
-
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
66
|
-
});
|
67
|
-
if (!buildInfo)
|
68
|
-
throw new Error("No build info found, have you run build?");
|
69
|
-
const { routeMap, builtRoutes } = buildInfo, routeToBuildInfo = {};
|
70
|
-
for (const route of builtRoutes) {
|
71
|
-
routeToBuildInfo[route.cleanPath] = route;
|
72
|
-
const bracketRoutePath = route.cleanPath.split("/").map((part) => part[0] === ":" ? `[${part.slice(1)}]` : part).join("/");
|
73
|
-
routeToBuildInfo[bracketRoutePath] = route;
|
74
|
-
}
|
75
|
-
const serverOptions = {
|
76
|
-
...options,
|
77
|
-
root
|
78
|
-
}, render = (await import((0, import_vxrn.getServerEntry)(serverOptions))).default.render, apiCJS = options.build?.api?.outputFormat === "cjs", handleRequest = createHandleRequest(
|
79
|
-
{},
|
80
|
-
{
|
81
|
-
async handleAPI({ route, request, loaderProps }) {
|
82
|
-
const apiFile = (0, import_node_path.join)(
|
83
|
-
process.cwd(),
|
84
|
-
"dist",
|
85
|
-
"api",
|
86
|
-
route.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js")
|
87
|
-
);
|
88
|
-
return isAPIRequest.set(request, !0), resolveAPIRequest(
|
89
|
-
async () => {
|
90
|
-
try {
|
91
|
-
return await import(apiFile);
|
92
|
-
} catch (err) {
|
93
|
-
return console.error(`
|
94
|
-
[one] Error importing API route at ${apiFile}:
|
95
|
-
|
96
|
-
${err}
|
97
|
-
|
98
|
-
If this is an import error, you can likely fix this by adding this dependency to
|
99
|
-
the "optimizeDeps.include" array in your vite.config.ts.
|
100
|
-
|
101
|
-
\u{1F41E} For a better error message run "node" and enter:
|
102
|
-
|
103
|
-
import('${apiFile}')
|
104
|
-
|
105
|
-
`), {};
|
106
|
-
}
|
107
|
-
},
|
108
|
-
request,
|
109
|
-
loaderProps?.params || {}
|
110
|
-
);
|
111
|
-
},
|
112
|
-
async handleSSR({ route, url, loaderProps }) {
|
113
|
-
if (route.type === "ssr") {
|
114
|
-
const buildInfo2 = routeToBuildInfo[route.page];
|
115
|
-
if (!buildInfo2)
|
116
|
-
throw new Error(
|
117
|
-
`No buildinfo found for ${url}, route: ${route.page}, in keys: ${Object.keys(routeToBuildInfo)}`
|
118
|
-
);
|
119
|
-
try {
|
120
|
-
const loaderData = await (await import(buildInfo2.serverJsPath)).loader?.(loaderProps), preloads = buildInfo2.preloads, headers = new Headers();
|
121
|
-
return headers.set("content-type", "text/html"), new Response(
|
122
|
-
await render({
|
123
|
-
loaderData,
|
124
|
-
loaderProps,
|
125
|
-
path: loaderProps?.path || "/",
|
126
|
-
preloads
|
127
|
-
}),
|
128
|
-
{
|
129
|
-
headers
|
130
|
-
}
|
131
|
-
);
|
132
|
-
} catch (err) {
|
133
|
-
console.error(`[one] Error rendering SSR route ${route.page}
|
134
|
-
|
135
|
-
${err?.stack ?? err}
|
136
|
-
|
137
|
-
url: ${url}`);
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
}
|
142
|
-
), htmlFiles = {};
|
143
|
-
for (const key in routeMap)
|
144
|
-
routeToBuildInfo[key]?.type !== "ssr" && (htmlFiles[key] = await import_fs_extra.default.readFile((0, import_node_path.join)("dist/client", routeMap[key]), "utf-8"));
|
145
|
-
app.use(async (context, next) => {
|
146
|
-
const html = htmlFiles[context.req.path];
|
147
|
-
if (html)
|
148
|
-
return context.html(html);
|
149
|
-
try {
|
150
|
-
const request = context.req.raw, response = await handleRequest.handler(request);
|
151
|
-
if (response) {
|
152
|
-
if (isResponse(response)) {
|
153
|
-
if (isStatusRedirect(response.status)) {
|
154
|
-
const location = `${response.headers.get("location") || ""}`;
|
155
|
-
return response.headers.forEach((value, key) => {
|
156
|
-
context.header(key, value);
|
157
|
-
}), context.redirect(location, response.status);
|
158
|
-
}
|
159
|
-
if (isAPIRequest.get(request))
|
160
|
-
try {
|
161
|
-
response.headers.set("Cache-Control", "no-store");
|
162
|
-
} catch (err) {
|
163
|
-
console.info(
|
164
|
-
`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`,
|
165
|
-
err
|
166
|
-
);
|
167
|
-
}
|
168
|
-
return response;
|
169
|
-
}
|
170
|
-
return context.json(
|
171
|
-
response,
|
172
|
-
200,
|
173
|
-
isAPIRequest.get(request) ? {
|
174
|
-
"Cache-Control": "no-store"
|
175
|
-
} : void 0
|
176
|
-
);
|
177
|
-
}
|
178
|
-
} catch (err) {
|
179
|
-
console.error(` [one] Error handling request: ${err.stack}`);
|
180
|
-
}
|
181
|
-
await next();
|
182
|
-
});
|
183
|
-
}
|
184
54
|
//# sourceMappingURL=serve.js.map
|
package/dist/cjs/serve.js.map
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../src/serve.ts"],
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO,+BAEP,kBAAoB,iCAEpB,
|
5
|
-
"names": ["FSExtra"
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO,+BAEP,kBAAoB,iCAEpB,2BAA+B,uCAC/B,sBAA6B;AAG7B,QAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,UAAQ,MAAM,4BAA4B,KAAK,SAAS,GAAG;AAC7D,CAAC;AAED,eAAsB,MAAM,OAA8B,CAAC,GAAG;AAC5D,QAAM,YAAa,MAAM,gBAAAA,QAAQ,SAAS,qBAAqB,GACzD,EAAE,WAAW,IAAI;AAEvB,+CAAe,SAAS,OACxB,kCAAa,UAAU;AAGvB,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,qBAAqB,GACrD,EAAE,gBAAgB,IAAI,MAAM,OAAO,yBAAyB,GAC5D,EAAE,SAAS,OAAO,UAAU,IAAI,MAAM,OAAO,YAAY,GACzD,EAAE,SAAS,IAAI,MAAM,OAAO,mBAAmB;AAErD,sBAAa,OAAO,GAEhB,KAAK,WACP,MAAM,QAAQ,YAAY,GAI5B,QAAQ,IAAI,gBAAgB,KAErB,MAAM,UAAU;AAAA,IACrB,QAAQ;AAAA;AAAA,MAEN,GAAG,WAAW;AAAA;AAAA,MAEd,GAAG,gBAAgB;AAAA,QACjB,MAAM,KAAK,OAAO,CAAC,KAAK,OAAO;AAAA,QAC/B,MAAM,KAAK;AAAA,QACX,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,QACf,cAAc,KAAK;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,IAEA,MAAM,YAAY,SAAS,KAAK;AAC9B,YAAM,SAAS,YAAY,SAAS,WAAW,GAAG;AAAA,IACpD;AAAA,EACF,CAAC;AACH;",
|
5
|
+
"names": ["FSExtra"]
|
6
6
|
}
|
package/dist/cjs/serve.native.js
CHANGED
@@ -26,17 +26,15 @@ __export(serve_exports, {
|
|
26
26
|
serve: () => serve
|
27
27
|
});
|
28
28
|
module.exports = __toCommonJS(serve_exports);
|
29
|
-
var import_polyfills_server = require("./polyfills-server"), import_fs_extra = __toESM(require("fs-extra"), 1),
|
29
|
+
var import_polyfills_server = require("./polyfills-server"), import_fs_extra = __toESM(require("fs-extra"), 1), import_setupBuildOptions = require("./server/setupBuildOptions"), import_ensureExists = require("./utils/ensureExists");
|
30
30
|
process.on("uncaughtException", function(err) {
|
31
31
|
console.error("[one] Uncaught exception", (err == null ? void 0 : err.stack) || err);
|
32
32
|
});
|
33
33
|
async function serve() {
|
34
|
-
var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, buildInfo = await import_fs_extra.default.readJSON("dist/buildInfo.json");
|
35
|
-
|
36
|
-
var { labelProcess } = await import("./cli/label-process"), { removeUndefined } = await import("./utils/removeUndefined"), {
|
37
|
-
labelProcess("serve"),
|
38
|
-
var oneOptions = await loadUserOneOptions("serve");
|
39
|
-
return process.env.VXRN_REACT_19 = "1", await (0, import_vxrn.serve)({
|
34
|
+
var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, buildInfo = await import_fs_extra.default.readJSON("dist/buildInfo.json"), { oneOptions } = buildInfo;
|
35
|
+
(0, import_setupBuildOptions.setupBuildInfo)(buildInfo), (0, import_ensureExists.ensureExists)(oneOptions);
|
36
|
+
var { labelProcess } = await import("./cli/label-process"), { removeUndefined } = await import("./utils/removeUndefined"), { loadEnv, serve: vxrnServe } = await import("vxrn/serve"), { oneServe } = await import("./server/oneServe");
|
37
|
+
return labelProcess("serve"), args.loadEnv && await loadEnv("production"), process.env.VXRN_REACT_19 = "1", await vxrnServe({
|
40
38
|
server: {
|
41
39
|
// fallback to one plugin
|
42
40
|
...oneOptions.server,
|
@@ -47,149 +45,11 @@ async function serve() {
|
|
47
45
|
compress: args.compress,
|
48
46
|
platform: args.platform,
|
49
47
|
cacheHeaders: args.cacheHeaders
|
50
|
-
})
|
51
|
-
async beforeStart(options, app) {
|
52
|
-
var _oneOptions_server_beforeStart, _oneOptions_server;
|
53
|
-
await ((_oneOptions_server = oneOptions.server) === null || _oneOptions_server === void 0 || (_oneOptions_server_beforeStart = _oneOptions_server.beforeStart) === null || _oneOptions_server_beforeStart === void 0 ? void 0 : _oneOptions_server_beforeStart.call(_oneOptions_server, options, app)), await oneServe(oneOptions, options, buildInfo, app);
|
54
|
-
}
|
55
|
-
}
|
56
|
-
});
|
57
|
-
}
|
58
|
-
async function oneServe(options, vxrnOptions, buildInfo, app) {
|
59
|
-
var _options_web, _options_build_api, _options_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 = (_options_web = options.web) === null || _options_web === void 0 ? void 0 : _options_web.redirects;
|
60
|
-
if (redirects) {
|
61
|
-
var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
|
62
|
-
try {
|
63
|
-
for (var _loop = function() {
|
64
|
-
var redirect = _step.value;
|
65
|
-
app.get(redirect.source, function(context) {
|
66
|
-
var destinationUrl = redirect.destination.replace(/:\w+/g, function(param) {
|
67
|
-
var paramName = param.substring(1);
|
68
|
-
return context.req.param(paramName) || "";
|
69
|
-
});
|
70
|
-
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
71
|
-
});
|
72
|
-
}, _iterator = redirects[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
|
73
|
-
} catch (err) {
|
74
|
-
_didIteratorError = !0, _iteratorError = err;
|
75
|
-
} finally {
|
76
|
-
try {
|
77
|
-
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
78
|
-
} finally {
|
79
|
-
if (_didIteratorError)
|
80
|
-
throw _iteratorError;
|
81
|
-
}
|
82
|
-
}
|
83
|
-
}
|
84
|
-
if (!buildInfo)
|
85
|
-
throw new Error("No build info found, have you run build?");
|
86
|
-
var { routeMap, builtRoutes } = buildInfo, routeToBuildInfo = {}, _iteratorNormalCompletion1 = !0, _didIteratorError1 = !1, _iteratorError1 = void 0;
|
87
|
-
try {
|
88
|
-
for (var _iterator1 = builtRoutes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
|
89
|
-
var route = _step1.value;
|
90
|
-
routeToBuildInfo[route.cleanPath] = route;
|
91
|
-
var bracketRoutePath = route.cleanPath.split("/").map(function(part) {
|
92
|
-
return part[0] === ":" ? `[${part.slice(1)}]` : part;
|
93
|
-
}).join("/");
|
94
|
-
routeToBuildInfo[bracketRoutePath] = route;
|
95
|
-
}
|
96
|
-
} catch (err) {
|
97
|
-
_didIteratorError1 = !0, _iteratorError1 = err;
|
98
|
-
} finally {
|
99
|
-
try {
|
100
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
101
|
-
} finally {
|
102
|
-
if (_didIteratorError1)
|
103
|
-
throw _iteratorError1;
|
104
|
-
}
|
105
|
-
}
|
106
|
-
var serverOptions = {
|
107
|
-
...options,
|
108
|
-
root
|
109
|
-
}, entryServer = (0, import_vxrn.getServerEntry)(serverOptions), entry = await import(entryServer), render = entry.default.render, apiCJS = ((_options_build = options.build) === null || _options_build === void 0 || (_options_build_api = _options_build.api) === null || _options_build_api === void 0 ? void 0 : _options_build_api.outputFormat) === "cjs", handleRequest = createHandleRequest({}, {
|
110
|
-
async handleAPI(param) {
|
111
|
-
var { route: route2, request, loaderProps } = param, apiFile = (0, import_node_path.join)(process.cwd(), "dist", "api", route2.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js"));
|
112
|
-
return isAPIRequest.set(request, !0), resolveAPIRequest(async function() {
|
113
|
-
try {
|
114
|
-
return await import(apiFile);
|
115
|
-
} catch (err) {
|
116
|
-
return console.error(`
|
117
|
-
[one] Error importing API route at ${apiFile}:
|
118
|
-
|
119
|
-
${err}
|
120
|
-
|
121
|
-
If this is an import error, you can likely fix this by adding this dependency to
|
122
|
-
the "optimizeDeps.include" array in your vite.config.ts.
|
123
|
-
|
124
|
-
\u{1F41E} For a better error message run "node" and enter:
|
125
|
-
|
126
|
-
import('${apiFile}')
|
127
|
-
|
128
|
-
`), {};
|
129
|
-
}
|
130
|
-
}, request, (loaderProps == null ? void 0 : loaderProps.params) || {});
|
48
|
+
})
|
131
49
|
},
|
132
|
-
async
|
133
|
-
|
134
|
-
if (route2.type === "ssr") {
|
135
|
-
var _$buildInfo = routeToBuildInfo[route2.page];
|
136
|
-
if (!_$buildInfo)
|
137
|
-
throw new Error(`No buildinfo found for ${url}, route: ${route2.page}, in keys: ${Object.keys(routeToBuildInfo)}`);
|
138
|
-
try {
|
139
|
-
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();
|
140
|
-
return headers.set("content-type", "text/html"), new Response(await render({
|
141
|
-
loaderData,
|
142
|
-
loaderProps,
|
143
|
-
path: (loaderProps == null ? void 0 : loaderProps.path) || "/",
|
144
|
-
preloads
|
145
|
-
}), {
|
146
|
-
headers
|
147
|
-
});
|
148
|
-
} catch (err) {
|
149
|
-
var _err_stack;
|
150
|
-
console.error(`[one] Error rendering SSR route ${route2.page}
|
151
|
-
|
152
|
-
${(_err_stack = err == null ? void 0 : err.stack) !== null && _err_stack !== void 0 ? _err_stack : err}
|
153
|
-
|
154
|
-
url: ${url}`);
|
155
|
-
}
|
156
|
-
}
|
157
|
-
}
|
158
|
-
}), htmlFiles = {};
|
159
|
-
for (var key in routeMap) {
|
160
|
-
var info = routeToBuildInfo[key];
|
161
|
-
(info == null ? void 0 : info.type) !== "ssr" && (htmlFiles[key] = await import_fs_extra.default.readFile((0, import_node_path.join)("dist/client", routeMap[key]), "utf-8"));
|
162
|
-
}
|
163
|
-
app.use(async function(context, next) {
|
164
|
-
var html = htmlFiles[context.req.path];
|
165
|
-
if (html)
|
166
|
-
return context.html(html);
|
167
|
-
try {
|
168
|
-
var request = context.req.raw, response = await handleRequest.handler(request);
|
169
|
-
if (response) {
|
170
|
-
if (isResponse(response)) {
|
171
|
-
if (isStatusRedirect(response.status)) {
|
172
|
-
var location = `${response.headers.get("location") || ""}`;
|
173
|
-
return response.headers.forEach(function(value, key2) {
|
174
|
-
context.header(key2, value);
|
175
|
-
}), context.redirect(location, response.status);
|
176
|
-
}
|
177
|
-
if (isAPIRequest.get(request))
|
178
|
-
try {
|
179
|
-
response.headers.set("Cache-Control", "no-store");
|
180
|
-
} catch (err) {
|
181
|
-
console.info(`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`, err);
|
182
|
-
}
|
183
|
-
return response;
|
184
|
-
}
|
185
|
-
return context.json(response, 200, isAPIRequest.get(request) ? {
|
186
|
-
"Cache-Control": "no-store"
|
187
|
-
} : void 0);
|
188
|
-
}
|
189
|
-
} catch (err) {
|
190
|
-
console.error(` [one] Error handling request: ${err.stack}`);
|
50
|
+
async beforeStart(options, app) {
|
51
|
+
await oneServe(oneOptions, options, buildInfo, app);
|
191
52
|
}
|
192
|
-
await next();
|
193
53
|
});
|
194
54
|
}
|
195
55
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../src/Users/n8/one/packages/one/src/serve.ts"],
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;8BAAO,+BAEP,kBAAoB,iCAEpB,
|
5
|
-
"names": ["process", "on", "err", "console", "error", "stack", "serve", "args", "buildInfo", "FSExtra", "readJSON", "
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;8BAAO,+BAEP,kBAAoB,iCAEpB,2BAA+B,uCAC/B,sBAA6B;AAG7BA,QAAQC,GAAG,qBAAqB,SAACC,KAAAA;AAC/BC,UAAQC,MAAM,6BAA4BF,OAAAA,OAAAA,SAAAA,IAAKG,UAASH,GAAAA;AAC1D,CAAA;AAEA,eAAsBI,QAAAA;MAAMC,OAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAA8B,CAAC,GACnDC,YAAa,MAAMC,gBAAAA,QAAQC,SAAS,qBAAqB,GACzD,EAAEC,WAAU,IAAKH;AAEvBI,+CAAeJ,SAAAA,OACfK,kCAAaF,UAAAA;AAGb,MAAM,EAAEG,aAAY,IAAK,MAAM,OAAO,qBAAA,GAChC,EAAEC,gBAAe,IAAK,MAAM,OAAO,yBAAA,GACnC,EAAEC,SAASV,OAAOW,UAAS,IAAK,MAAM,OAAO,YAAA,GAC7C,EAAEC,SAAQ,IAAK,MAAM,OAAO,mBAAA;AAElCJ,sBAAa,OAAA,GAETP,KAAKS,WACP,MAAMA,QAAQ,YAAA,GAIhBhB,QAAQmB,IAAIC,gBAAgB,KAErB,MAAMH,UAAU;IACrBI,QAAQ;;MAEN,GAAGV,WAAWU;;MAEd,GAAGN,gBAAgB;QACjBO,MAAMf,KAAKe,OAAO,CAACf,KAAKe,OAAOC;QAC/BC,MAAMjB,KAAKiB;QACXC,UAAUlB,KAAKkB;QACfC,UAAUnB,KAAKmB;QACfC,cAAcpB,KAAKoB;MACrB,CAAA;IACF;IAEA,MAAMC,YAAYC,SAASC,KAAG;AAC5B,YAAMZ,SAASP,YAAYkB,SAASrB,WAAWsB,GAAAA;IACjD;EACF,CAAA;AACF;",
|
5
|
+
"names": ["process", "on", "err", "console", "error", "stack", "serve", "args", "buildInfo", "FSExtra", "readJSON", "oneOptions", "setupBuildInfo", "ensureExists", "labelProcess", "removeUndefined", "loadEnv", "vxrnServe", "oneServe", "env", "VXRN_REACT_19", "server", "port", "undefined", "host", "compress", "platform", "cacheHeaders", "beforeStart", "options", "app"]
|
6
6
|
}
|
@@ -0,0 +1,173 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf,
|
6
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
+
var __export = (target, all) => {
|
8
|
+
for (var name in all) __defProp(target, name, {
|
9
|
+
get: all[name],
|
10
|
+
enumerable: !0
|
11
|
+
});
|
12
|
+
},
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
15
|
+
get: () => from[key],
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
17
|
+
});
|
18
|
+
return to;
|
19
|
+
};
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
26
|
+
value: mod,
|
27
|
+
enumerable: !0
|
28
|
+
}) : target, mod)),
|
29
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
30
|
+
value: !0
|
31
|
+
}), mod);
|
32
|
+
var oneServe_exports = {};
|
33
|
+
__export(oneServe_exports, {
|
34
|
+
oneServe: () => oneServe
|
35
|
+
});
|
36
|
+
module.exports = __toCommonJS(oneServe_exports);
|
37
|
+
var import_node_path = require("node:path"),
|
38
|
+
import_serve = require("vxrn/serve");
|
39
|
+
async function oneServe(oneOptions, vxrnOptions, buildInfo, app, serveStatic = !0) {
|
40
|
+
const {
|
41
|
+
createHandleRequest
|
42
|
+
} = await import("../createHandleRequest"),
|
43
|
+
{
|
44
|
+
isResponse
|
45
|
+
} = await import("../utils/isResponse"),
|
46
|
+
{
|
47
|
+
isStatusRedirect
|
48
|
+
} = await import("../utils/isStatus"),
|
49
|
+
{
|
50
|
+
resolveAPIRequest
|
51
|
+
} = await import("../vite/resolveAPIRequest"),
|
52
|
+
isAPIRequest = /* @__PURE__ */new WeakMap(),
|
53
|
+
root = vxrnOptions.root || ".",
|
54
|
+
redirects = oneOptions.web?.redirects;
|
55
|
+
if (redirects) for (const redirect of redirects) app.get(redirect.source, context => {
|
56
|
+
const destinationUrl = redirect.destination.replace(/:\w+/g, param => {
|
57
|
+
const paramName = param.substring(1);
|
58
|
+
return context.req.param(paramName) || "";
|
59
|
+
});
|
60
|
+
return context.redirect(destinationUrl, redirect.permanent ? 301 : 302);
|
61
|
+
});
|
62
|
+
if (!buildInfo) throw new Error("No build info found, have you run build?");
|
63
|
+
const {
|
64
|
+
routeMap,
|
65
|
+
builtRoutes
|
66
|
+
} = buildInfo,
|
67
|
+
routeToBuildInfo = {};
|
68
|
+
for (const route of builtRoutes) {
|
69
|
+
routeToBuildInfo[route.cleanPath] = route;
|
70
|
+
const bracketRoutePath = route.cleanPath.split("/").map(part => part[0] === ":" ? `[${part.slice(1)}]` : part).join("/");
|
71
|
+
routeToBuildInfo[bracketRoutePath] = route;
|
72
|
+
}
|
73
|
+
const serverOptions = {
|
74
|
+
...oneOptions,
|
75
|
+
root
|
76
|
+
},
|
77
|
+
render = (await import((0, import_serve.getServerEntry)(serverOptions))).default.render,
|
78
|
+
apiCJS = oneOptions.build?.api?.outputFormat === "cjs",
|
79
|
+
handleRequest = createHandleRequest({}, {
|
80
|
+
async handleAPI({
|
81
|
+
route,
|
82
|
+
request,
|
83
|
+
loaderProps
|
84
|
+
}) {
|
85
|
+
const apiFile = (0, import_node_path.join)(process.cwd(), "dist", "api", route.page.replace("[", "_").replace("]", "_") + (apiCJS ? ".cjs" : ".js"));
|
86
|
+
return isAPIRequest.set(request, !0), resolveAPIRequest(async () => {
|
87
|
+
try {
|
88
|
+
return await import(apiFile);
|
89
|
+
} catch (err) {
|
90
|
+
return console.error(`
|
91
|
+
[one] Error importing API route at ${apiFile}:
|
92
|
+
|
93
|
+
${err}
|
94
|
+
|
95
|
+
If this is an import error, you can likely fix this by adding this dependency to
|
96
|
+
the "optimizeDeps.include" array in your vite.config.ts.
|
97
|
+
|
98
|
+
\u{1F41E} For a better error message run "node" and enter:
|
99
|
+
|
100
|
+
import('${apiFile}')
|
101
|
+
|
102
|
+
`), {};
|
103
|
+
}
|
104
|
+
}, request, loaderProps?.params || {});
|
105
|
+
},
|
106
|
+
async handleSSR({
|
107
|
+
route,
|
108
|
+
url,
|
109
|
+
loaderProps
|
110
|
+
}) {
|
111
|
+
if (route.type === "ssr") {
|
112
|
+
const buildInfo2 = routeToBuildInfo[route.page];
|
113
|
+
if (!buildInfo2) throw new Error(`No buildinfo found for ${url}, route: ${route.page}, in keys: ${Object.keys(routeToBuildInfo)}`);
|
114
|
+
try {
|
115
|
+
const loaderData = await (await import(buildInfo2.serverJsPath)).loader?.(loaderProps),
|
116
|
+
preloads = buildInfo2.preloads,
|
117
|
+
headers = new Headers();
|
118
|
+
return headers.set("content-type", "text/html"), new Response(await render({
|
119
|
+
loaderData,
|
120
|
+
loaderProps,
|
121
|
+
path: loaderProps?.path || "/",
|
122
|
+
preloads
|
123
|
+
}), {
|
124
|
+
headers
|
125
|
+
});
|
126
|
+
} catch (err) {
|
127
|
+
console.error(`[one] Error rendering SSR route ${route.page}
|
128
|
+
|
129
|
+
${err?.stack ?? err}
|
130
|
+
|
131
|
+
url: ${url}`);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}),
|
136
|
+
htmlFiles = {};
|
137
|
+
if (serveStatic) {
|
138
|
+
const {
|
139
|
+
readFile
|
140
|
+
} = await import("node:fs/promises");
|
141
|
+
for (const key in routeMap) routeToBuildInfo[key]?.type !== "ssr" && (htmlFiles[key] = await readFile((0, import_node_path.join)("dist/client", routeMap[key]), "utf-8"));
|
142
|
+
}
|
143
|
+
app.use(async (context, next) => {
|
144
|
+
const html = htmlFiles[context.req.path];
|
145
|
+
if (html) return context.html(html);
|
146
|
+
try {
|
147
|
+
const request = context.req.raw,
|
148
|
+
response = await handleRequest.handler(request);
|
149
|
+
if (response) {
|
150
|
+
if (isResponse(response)) {
|
151
|
+
if (isStatusRedirect(response.status)) {
|
152
|
+
const location = `${response.headers.get("location") || ""}`;
|
153
|
+
return response.headers.forEach((value, key) => {
|
154
|
+
context.header(key, value);
|
155
|
+
}), context.redirect(location, response.status);
|
156
|
+
}
|
157
|
+
if (isAPIRequest.get(request)) try {
|
158
|
+
response.headers.set("Cache-Control", "no-store");
|
159
|
+
} catch (err) {
|
160
|
+
console.info(`Error udpating cache header on api route "${context.req.path}" to no-store, it is ${response.headers.get("cache-control")}, continue`, err);
|
161
|
+
}
|
162
|
+
return response;
|
163
|
+
}
|
164
|
+
return context.json(response, 200, isAPIRequest.get(request) ? {
|
165
|
+
"Cache-Control": "no-store"
|
166
|
+
} : void 0);
|
167
|
+
}
|
168
|
+
} catch (err) {
|
169
|
+
console.error(` [one] Error handling request: ${err.stack}`);
|
170
|
+
}
|
171
|
+
await next();
|
172
|
+
});
|
173
|
+
}
|