import type { JobPayload, JobType } from "../queue"; export type JobHandler = ( payload: JobPayload[T], ) => Promise; export type HandlerMap = { [K in JobType]: JobHandler; }; let handlers: HandlerMap | null = null; export function getHandlers(): HandlerMap { if (!handlers) { handlers = { "darkwatch.scan": require("./darkwatch.scan").handler, "darkwatch.digest": require("./darkwatch.digest").handler, "voiceprint.batch": require("./voiceprint.batch").handler, "hometitle.scan": require("./hometitle.scan").handler, "removebrokers.process": require("./removebrokers.process").handler, "reports.generate": require("./reports.generate").handler, }; } return handlers; } export function setHandlers(mock: Partial): void { handlers = { "darkwatch.scan": mock["darkwatch.scan"] ?? (async () => {}), "darkwatch.digest": mock["darkwatch.digest"] ?? (async () => {}), "voiceprint.batch": mock["voiceprint.batch"] ?? (async () => {}), "hometitle.scan": mock["hometitle.scan"] ?? (async () => {}), "removebrokers.process": mock["removebrokers.process"] ?? (async () => {}), "reports.generate": mock["reports.generate"] ?? (async () => {}), }; }