28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
import { join } from "node:path";
|
|
import { parseDuration } from "./duration.js";
|
|
|
|
export type WorkerEnv = {
|
|
databaseUrl: string;
|
|
artifactsDir: string;
|
|
/** cache time-to-stale (CACHE_STALE_AFTER, default 24h; "0" disables caching). */
|
|
cacheStaleAfterMs: number;
|
|
/** this worker's isolated build harness dir for verify jobs (M5). */
|
|
harnessDir: string;
|
|
/** persistent entry-capture cache dir (the single→multi speed path). "" disables it. */
|
|
captureCacheDir: string;
|
|
tier: string;
|
|
};
|
|
|
|
export function loadWorkerEnv(): WorkerEnv {
|
|
const databaseUrl = process.env.DATABASE_URL;
|
|
if (!databaseUrl) throw new Error("DATABASE_URL is required for the worker");
|
|
return {
|
|
databaseUrl,
|
|
artifactsDir: process.env.ARTIFACTS_DIR ?? join(process.cwd(), "local-data", "artifacts"),
|
|
cacheStaleAfterMs: parseDuration(process.env.CACHE_STALE_AFTER, 24 * 60 * 60 * 1000),
|
|
harnessDir: process.env.HARNESS_DIR ?? join(process.cwd(), "local-data", "harness"),
|
|
captureCacheDir: process.env.CAPTURE_CACHE_DIR ?? join(process.cwd(), "local-data", "capture-cache"),
|
|
tier: process.env.VERIFY_TIER ?? "stage2",
|
|
};
|
|
}
|