Files
hyperframes/packages/cli/src/renderSetupWorker.ts
T
heygengenesis[bot]andmiguel.sierra 08d48ab753 fix(cli): guard process snapshot capture (#3974)
Co-authored-by: heygengenesis[bot] <262951085+heygengenesis[bot]@users.noreply.github.com>
Co-authored-by: miguel.sierra <229591595+miguel-heygen@users.noreply.github.com>
2026-09-16 06:33:29 +00:00

33 lines
1.2 KiB
TypeScript

// fallow-ignore-file unused-file
import { ensureBrowser, releaseOwnedBrowserInstallLock } from "./browser/manager.js";
import { lintProject } from "./utils/lintProject.js";
import { killOrphanedProcesses } from "./utils/orphanCleanup.js";
import { installRenderSetupSignalHandlers } from "./renderSetupWorkerLifecycle.js";
const RESULT_PREFIX = "HYPERFRAMES_RENDER_SETUP_RESULT:";
const mode = process.argv[2];
const input = JSON.parse(process.env.HYPERFRAMES_RENDER_SETUP_INPUT ?? "{}");
const disposeSignalHandlers = installRenderSetupSignalHandlers(
process,
releaseOwnedBrowserInstallLock,
(signal) => process.kill(process.pid, signal),
process.env.HYPERFRAMES_RENDER_DETACHED !== "1",
);
let result: unknown;
if (mode === "browser") {
result = await ensureBrowser(input);
} else if (mode === "lint") {
result = await lintProject(input.projectDir, input.entryFile);
} else if (mode === "orphan-cleanup") {
const killed = killOrphanedProcesses();
result = killed;
if (killed > 0) await new Promise((resolve) => setTimeout(resolve, 600));
} else {
throw new Error(`Unknown render setup mode: ${mode}`);
}
disposeSignalHandlers();
process.stdout.write(RESULT_PREFIX + JSON.stringify(result) + "\n");