@cortexql/queue
Version:
An extension for Queue implementation on CortexQL based on Bull Queue
45 lines • 1.46 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fs = require("fs");
const glob_1 = require("glob");
const core_1 = require("@cortexql/core");
const paths_1 = require("@cortexql/core/paths");
const Queue_1 = require("./Queue");
core_1.hooks.bootstrap.addAction('loadQueues', () => {
const queuePath = path.resolve(paths_1.getApiPath(), 'queues');
if (fs.existsSync(queuePath)) {
const glob = new glob_1.GlobSync('*.@(ts|js)', {
ignore: ['*.d.ts'],
cwd: queuePath,
});
for (const file of glob.found) {
const fileName = path.resolve(queuePath, file);
require(fileName);
}
}
});
core_1.hooks.middlewares.addAction('queue-ui', ({ api }) => {
const Arena = require('bull-arena');
const basePath = '/queues';
api.use('/', (req, res, next) => {
const queueMap = Queue_1.getWorkerQueues();
const queues = [];
for (const queueClient of queueMap) {
const { queue } = queueClient;
queues.push({
name: queue.name,
hostId: 'local',
type: 'bull',
prefix: queue.options.prefix,
});
}
return Arena({
queues,
}, {
basePath,
disableListen: true,
})(req, res, next);
});
});
//# sourceMappingURL=bootstrap.js.map