UNPKG

@cavai/adonis-queue

Version:
39 lines (38 loc) 913 B
import type { QueueManagerFactory, QueueDriverList } from './types.js'; type GetConfig<T extends any[]> = T extends [] ? {} : T[0]; /** * Define config looks like this * * I will take this * { * default: 'somename', * queues: { * somename: { * driver: 'db', * table_name: 'sjkadakjs' * } * } * } * * And return this * { * default: 'somename', * queues: { * somename: () => new DatabaseDrive({ * table_name: 'sjdasjk', * }) * } * } */ export declare function defineConfig<KnownQueues extends Record<string, { [K in keyof QueueDriverList]: { driver: K; } & GetConfig<Parameters<QueueDriverList[K]>>; }[keyof QueueDriverList]>>(config: { default: keyof KnownQueues; queues: KnownQueues; }): { default: keyof KnownQueues; queues: { [K in keyof KnownQueues]: QueueManagerFactory; }; }; export {};