because I got bored of customising my CV for every job
1const requireEnv = (key: string): string => {
2 const value = process.env[key];
3 if (!value) {
4 throw new Error(`Missing required env var: ${key}`);
5 }
6 return value;
7};
8
9export type WorkerConfig = typeof config;
10
11export const config = {
12 get databaseUrl() {
13 return requireEnv("DATABASE_URL");
14 },
15 queueSchema: process.env["QUEUE_SCHEMA"] ?? "queue",
16 queueName: process.env["QUEUE_NAME"] ?? "default",
17 pollIntervalMs: Number(process.env["POLL_INTERVAL_MS"] ?? "1000"),
18 pdfOutputDir: process.env["PDF_OUTPUT_DIR"] ?? "./pdf-output",
19 pdfTimeoutMs: Number(process.env["PDF_TIMEOUT_MS"] ?? "30000"),
20 heartbeatFilePath:
21 process.env["HEARTBEAT_FILE_PATH"] ?? "/tmp/worker-heartbeat",
22 heartbeatDbIntervalMs: Number(process.env["HEARTBEAT_DB_INTERVAL_MS"] ?? "0"),
23 chromiumArgs: (process.env["CHROMIUM_ARGS"] ?? "--no-sandbox,--disable-dev-shm-usage")
24 .split(",")
25 .map((s) => s.trim())
26 .filter(Boolean),
27} as const;