one
Version:
One is a new React Framework that makes Vite serve both native and web.
74 lines (73 loc) • 2.43 kB
JavaScript
import { parentPort } from "node:worker_threads";
import { workerImport } from "../utils/workerImport.mjs";
if (!parentPort) {
console.error("Must be run as a worker thread");
process.exit(1);
}
process.env.VXRN_REACT_19 = "1";
process.env.VITE_ENVIRONMENT = "ssr";
if (!process.env.NODE_ENV) {
process.env.NODE_ENV = "production";
}
let buildPageFn = null;
let runWithAsyncLocalContextFn = null;
let initialized = false;
async function ensureImports() {
if (!buildPageFn) {
const mod = await workerImport("./buildPage", import.meta.url);
buildPageFn = mod.buildPage;
}
if (!runWithAsyncLocalContextFn) {
const mod = await workerImport("../vite/one-server-only", import.meta.url);
runWithAsyncLocalContextFn = mod.runWithAsyncLocalContext;
}
return {
buildPage: buildPageFn,
runWithAsyncLocalContext: runWithAsyncLocalContextFn
};
}
async function initializeWorker(oneOptions) {
if (initialized) return;
if (!oneOptions) {
throw new Error("Worker must receive oneOptions from main thread");
}
globalThis["__vxrnPluginConfig__"] = oneOptions;
initialized = true;
}
parentPort.on("message", async msg => {
if (msg.type === "init") {
await initializeWorker(msg.oneOptions);
parentPort.postMessage({
type: "init-done",
id: msg.id
});
return;
}
if (msg.type === "build") {
try {
const {
buildPage,
runWithAsyncLocalContext
} = await ensureImports();
const result = await runWithAsyncLocalContext(async () => {
return await buildPage(msg.args.serverEntry, msg.args.path, msg.args.relativeId, msg.args.params, msg.args.foundRoute, msg.args.clientManifestEntry, msg.args.staticDir, msg.args.clientDir, msg.args.builtMiddlewares, msg.args.serverJsPath, msg.args.preloads, msg.args.allCSS, msg.args.layoutCSS, msg.args.routePreloads, msg.args.allCSSContents, msg.args.criticalPreloads, msg.args.deferredPreloads, msg.args.useAfterLCP, msg.args.useAfterLCPAggressive);
});
parentPort.postMessage({
type: "done",
id: msg.id,
result
});
} catch (err) {
parentPort.postMessage({
type: "error",
id: msg.id,
error: err instanceof Error ? err.message : String(err),
stack: err instanceof Error ? err.stack : void 0
});
}
}
});
parentPort.postMessage({
type: "ready"
});
//# sourceMappingURL=buildPageWorker.mjs.map