@cavai/adonis-queue
Version:
Basic AdonisJS queue provider
39 lines (38 loc) • 913 B
TypeScript
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 {};