Files
image-platform/apps/worker/src/config.ts

26 lines
740 B
TypeScript
Raw Normal View History

import { loadQueueTopologyFromEnv, type QueueTopology } from "@image-platform/queue"
export type WorkerConfig = {
prefetch: number
queueTopology: QueueTopology
rabbitmqUrl: string
}
export function loadWorkerConfig(env: NodeJS.ProcessEnv = process.env): WorkerConfig {
return {
prefetch: parsePositiveInteger(env.WORKER_PREFETCH, 2),
queueTopology: loadQueueTopologyFromEnv(env),
rabbitmqUrl: env.RABBITMQ_URL ?? "amqp://image:image-password@localhost:5672/image_platform",
}
}
function parsePositiveInteger(value: string | undefined, fallback: number) {
if (!value) {
return fallback
}
const parsed = Number.parseInt(value, 10)
return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : fallback
}