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 }