template-saas/apps/backend/node_modules/@nestjs/bullmq/dist/bull.providers.js
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

137 lines
5.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createQueueOptionProviders = createQueueOptionProviders;
exports.createFlowProducerOptionProviders = createFlowProducerOptionProviders;
exports.createQueueProviders = createQueueProviders;
exports.createFlowProducerProviders = createFlowProducerProviders;
const bull_shared_1 = require("@nestjs/bull-shared");
const common_1 = require("@nestjs/common");
const utils_1 = require("./utils");
const helpers_1 = require("./utils/helpers");
function createQueueAndWorkers(options, queueClass, workerClass) {
const queueName = options.name ?? 'default';
const queue = new queueClass(queueName, options);
let workerRefs = [];
if (options.processors) {
workerRefs = options.processors.map((processor) => {
if ((0, helpers_1.isAdvancedProcessor)(processor)) {
const { callback, ...processorOptions } = processor;
return new workerClass(queueName, callback, {
connection: options.connection,
sharedConnection: options.sharedConnection,
prefix: options.prefix,
...processorOptions,
});
}
else if ((0, helpers_1.isAdvancedSeparateProcessor)(processor)) {
const { path, ...processorOptions } = processor;
return new workerClass(queueName, path, {
connection: options.connection,
sharedConnection: options.sharedConnection,
prefix: options.prefix,
...processorOptions,
});
}
else if ((0, helpers_1.isSeparateProcessor)(processor)) {
return new workerClass(queueName, processor, {
connection: options.connection,
sharedConnection: options.sharedConnection,
prefix: options.prefix,
});
}
else if ((0, helpers_1.isProcessorCallback)(processor)) {
return new workerClass(queueName, processor, {
connection: options.connection,
sharedConnection: options.sharedConnection,
prefix: options.prefix,
});
}
});
}
queue.onApplicationShutdown =
async function () {
const closeWorkers = workerRefs.map((worker) => worker.close());
await Promise.all(closeWorkers);
await this.close();
if (options.forceDisconnectOnShutdown) {
if (this.connection?.status !== 'closed' && this.disconnect) {
return this.disconnect();
}
}
};
return queue;
}
function createFlowProducers(options, flowProducerClass) {
const flowProducer = new flowProducerClass(options);
flowProducer.onApplicationShutdown =
async function () {
await this.close();
if (options.forceDisconnectOnShutdown ?? true) {
if (this.connection?.status !== 'closed' && this.disconnect) {
return this.disconnect();
}
}
};
return flowProducer;
}
function createQueueOptionProviders(options) {
const providers = options.map((option) => {
const optionalSharedConfigHolder = (0, bull_shared_1.createConditionalDepHolder)((0, utils_1.getSharedConfigToken)(option.configKey), utils_1.BULL_CONFIG_DEFAULT_TOKEN);
return [
optionalSharedConfigHolder,
{
provide: (0, utils_1.getQueueOptionsToken)(option.name),
useFactory: (optionalDepHolder) => {
return {
...optionalDepHolder.getDependencyRef(option.name),
...option,
};
},
inject: [optionalSharedConfigHolder],
},
];
});
return (0, common_1.flatten)(providers);
}
function createFlowProducerOptionProviders(options) {
const providers = options.map((option) => {
const optionalSharedConfigHolder = (0, bull_shared_1.createConditionalDepHolder)((0, utils_1.getSharedConfigToken)(option.configKey), utils_1.BULL_CONFIG_DEFAULT_TOKEN);
return [
optionalSharedConfigHolder,
{
provide: (0, utils_1.getFlowProducerOptionsToken)(option.name),
useFactory: (optionalDepHolder) => {
return {
...optionalDepHolder.getDependencyRef(option.name),
...option,
};
},
inject: [optionalSharedConfigHolder],
},
];
});
return (0, common_1.flatten)(providers);
}
function createQueueProviders(options, queueClass, workerClass) {
const queueProviders = options.map((item) => ({
provide: (0, bull_shared_1.getQueueToken)(item.name),
useFactory: (queueOptions) => {
const queueName = queueOptions.name || item.name;
return createQueueAndWorkers({ ...queueOptions, name: queueName }, queueClass, workerClass);
},
inject: [(0, utils_1.getQueueOptionsToken)(item.name)],
}));
return queueProviders;
}
function createFlowProducerProviders(options, flowProducerClass) {
const flowProducerProviders = options.map((item) => ({
provide: (0, utils_1.getFlowProducerToken)(item.name),
useFactory: (flowProducerOptions) => {
const flowProducerName = flowProducerOptions.name || item.name;
return createFlowProducers({ ...flowProducerOptions, name: flowProducerName }, flowProducerClass);
},
inject: [(0, utils_1.getFlowProducerOptionsToken)(item.name)],
}));
return flowProducerProviders;
}