mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-14 13:27:13 +00:00
Co-authored-by: heygengenesis[bot] <262951085+heygengenesis[bot]@users.noreply.github.com> Co-authored-by: miguel.sierra <229591595+miguel-heygen@users.noreply.github.com>
33 lines
1.2 KiB
TypeScript
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");
|