26 lines
740 B
TypeScript
26 lines
740 B
TypeScript
|
|
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
|
||
|
|
}
|