1 | "use strict";
|
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7 | };
|
8 | var __metadata = (this && this.__metadata) || function (k, v) {
|
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10 | };
|
11 | var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12 | return function (target, key) { decorator(target, key, paramIndex); }
|
13 | };
|
14 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
15 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
16 | return new (P || (P = Promise))(function (resolve, reject) {
|
17 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
18 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
19 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
20 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
21 | });
|
22 | };
|
23 | var BullCoreModule_1;
|
24 | Object.defineProperty(exports, "__esModule", { value: true });
|
25 | exports.BullCoreModule = void 0;
|
26 | const common_1 = require("@nestjs/common");
|
27 | const metadata_scanner_1 = require("@nestjs/core/metadata-scanner");
|
28 | const bull_constants_1 = require("./bull.constants");
|
29 | const bull_queue_provider_service_1 = require("./services/bull-queue-provider.service");
|
30 | const bull_service_1 = require("./services/bull.service");
|
31 | const event_explorer_service_1 = require("./services/explorers/event-explorer.service");
|
32 | const processor_explorer_service_1 = require("./services/explorers/processor-explorer.service");
|
33 | let BullCoreModule = BullCoreModule_1 = class BullCoreModule {
|
34 | constructor(processorExplorer, eventExplorer, options, bullService) {
|
35 | this.processorExplorer = processorExplorer;
|
36 | this.eventExplorer = eventExplorer;
|
37 | this.options = options;
|
38 | this.bullService = bullService;
|
39 | }
|
40 | onModuleInit() {
|
41 | return __awaiter(this, void 0, void 0, function* () {
|
42 | if (this.bullService.isAsync) {
|
43 | const bullProviderService = new bull_queue_provider_service_1.BullQueueProviderService(this.options, this.bullService);
|
44 | bullProviderService.createBullQueueProviders();
|
45 | }
|
46 | this.processorExplorer.explore();
|
47 | this.eventExplorer.explore();
|
48 | yield this.bullService.isReady();
|
49 | });
|
50 | }
|
51 | onModuleDestroy() {
|
52 | return __awaiter(this, void 0, void 0, function* () {
|
53 | yield this.bullService.closeAll();
|
54 | });
|
55 | }
|
56 | static forRoot(options) {
|
57 | const bullService = new bull_service_1.BullService();
|
58 | const bullProviderService = new bull_queue_provider_service_1.BullQueueProviderService(options, bullService);
|
59 | const bullQueueProviders = bullProviderService.createBullQueueProviders();
|
60 | const bullQueueServiceProvider = {
|
61 | provide: bull_constants_1.BULL_MODULE_SERVICE,
|
62 | useValue: bullService,
|
63 | };
|
64 | return {
|
65 | module: BullCoreModule_1,
|
66 | providers: [
|
67 | {
|
68 | provide: bull_constants_1.BULL_MODULE_OPTIONS,
|
69 | useValue: options,
|
70 | },
|
71 | bullQueueServiceProvider,
|
72 | ...bullQueueProviders,
|
73 | ],
|
74 | exports: [bullQueueServiceProvider, ...bullQueueProviders],
|
75 | };
|
76 | }
|
77 | static forRootAsync(options) {
|
78 | const bullService = new bull_service_1.BullService(true);
|
79 | const bullQueueServiceProvider = {
|
80 | provide: bull_constants_1.BULL_MODULE_SERVICE,
|
81 | useValue: bullService,
|
82 | };
|
83 | const asyncProviders = this.createAsyncProviders(options);
|
84 | return {
|
85 | module: BullCoreModule_1,
|
86 | imports: [...(options.imports || [])],
|
87 | providers: [bullQueueServiceProvider, ...asyncProviders],
|
88 | exports: [bullQueueServiceProvider],
|
89 | };
|
90 | }
|
91 | static createAsyncProviders(options) {
|
92 | if (options.useFactory) {
|
93 | return [this.createAsyncOptionsProvider(options)];
|
94 | }
|
95 | return [
|
96 | this.createAsyncOptionsProvider(options),
|
97 | {
|
98 | provide: options.useClass,
|
99 | useClass: options.useClass,
|
100 | inject: [options.inject || []],
|
101 | },
|
102 | ];
|
103 | }
|
104 | static createAsyncOptionsProvider(options) {
|
105 | if (options.useFactory) {
|
106 | return {
|
107 | provide: bull_constants_1.BULL_MODULE_OPTIONS,
|
108 | useFactory: options.useFactory,
|
109 | inject: options.inject || [],
|
110 | };
|
111 | }
|
112 | return {
|
113 | provide: bull_constants_1.BULL_MODULE_OPTIONS,
|
114 | useFactory: (optionsFactory) => __awaiter(this, void 0, void 0, function* () { return yield optionsFactory.createBullModuleOptions(); }),
|
115 | inject: options.useClass ? [options.useClass] : [],
|
116 | };
|
117 | }
|
118 | };
|
119 | BullCoreModule = BullCoreModule_1 = __decorate([
|
120 | common_1.Global(),
|
121 | common_1.Module({
|
122 | providers: [metadata_scanner_1.MetadataScanner, processor_explorer_service_1.BullQueueProcessorExplorerService, event_explorer_service_1.BullQueueEventExplorerService],
|
123 | }),
|
124 | __param(2, common_1.Inject(bull_constants_1.BULL_MODULE_OPTIONS)),
|
125 | __param(3, common_1.Inject(bull_constants_1.BULL_MODULE_SERVICE)),
|
126 | __metadata("design:paramtypes", [processor_explorer_service_1.BullQueueProcessorExplorerService,
|
127 | event_explorer_service_1.BullQueueEventExplorerService, Object, bull_service_1.BullService])
|
128 | ], BullCoreModule);
|
129 | exports.BullCoreModule = BullCoreModule;
|