UNPKG

@cavai/adonis-queue

Version:
62 lines (61 loc) 1.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineConfig = void 0; const DriversCollection_1 = __importDefault(require("./DriversCollection")); /** * Define config looks like this * * I will take this * { * default: 'somename', * logLevel: 'info', * queues: { * somename: { * driver: 'db', * table_name: 'sjkadakjs' * } * } * } * * And return this * { * default: 'somename', * logLevel: 'info', * queues: { * somename: () => new DatabaseDrive({ * table_name: 'sjdasjk', * }) * } * } */ function defineConfig(config) { /** * Queues queues should always be provided */ if (!config.queues) { throw new Error('Missing "queues" property in queue config'); } /** * The default queue should be mentioned in the queues */ if (config.default && !config.queues[config.default]) { throw new Error(`Missing "queues.${String(config.default)}" in queue config. It is referenced by the "default" property`); } /** * Converting queues config to a collection that queue manager can use */ const managerQueues = Object.keys(config.queues).reduce((result, disk) => { const queueConfig = config.queues[disk]; result[disk] = () => DriversCollection_1.default.create(queueConfig.driver, queueConfig); return result; }, {}); return { default: config.default, logLevel: config.logLevel, queues: managerQueues, }; } exports.defineConfig = defineConfig;