37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import type { JobPayload, JobType } from "../queue";
|
|
|
|
export type JobHandler<T extends JobType = JobType> = (
|
|
payload: JobPayload[T],
|
|
) => Promise<void>;
|
|
|
|
export type HandlerMap = {
|
|
[K in JobType]: JobHandler<K>;
|
|
};
|
|
|
|
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<HandlerMap>): 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 () => {}),
|
|
};
|
|
}
|