UNPKG

sssx

Version:

Fast Svelte Static Site X – SSG/SSR focused on SEO for multi-million pages websites

43 lines (35 loc) 1.27 kB
import { parentPort, threadId } from "node:worker_threads"; import { cwd } from "../utils/cwd.ts"; import { getConfig } from "../config.ts"; import { isDeno } from "../utils/isDeno.ts"; import { buildRoute } from "../render/index.ts"; import { getRoute } from "../utils/getRoute.ts"; import { type RouteInfo } from "../routes/index.ts"; const config = await getConfig(cwd); const outdir = `${cwd}/${config.outDir}`; const isDev = false; const processData = async (routes: RouteInfo[]) => { for (let i = 0; i < routes.length; i++) { const segment = routes[i]; const url = segment.permalink; const route = getRoute(url); try { await buildRoute(route, segment!, outdir, cwd, config, isDev); parentPort?.postMessage({ url, threadId }); } catch (err) { console.log("build error route issue", { segment, routes }); parentPort?.postMessage({ err }); } } parentPort?.postMessage({ terminate: true, threadId }); //@ts-ignore isDeno ? self.close() : process.exit(1); }; type Message = { routes: RouteInfo[]; }; parentPort?.on("message", async (data: Message) => { // console.log("onMessage", data); if (data.routes) await processData(data.routes); }); parentPort?.postMessage({ ready: true, threadId });