UNPKG

@russ-b/nestjs-common-tools

Version:
74 lines 3.27 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var OutboxModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.OutboxModule = void 0; const common_1 = require("@nestjs/common"); const typeorm_1 = require("@nestjs/typeorm"); const entities_1 = require("./entities"); const outbox_constants_1 = require("./outbox.constants"); const outbox_options_util_1 = require("./outbox-options.util"); const services_1 = require("./services"); let OutboxModule = OutboxModule_1 = class OutboxModule { static forRoot(options = {}) { return { module: OutboxModule_1, global: options.global, imports: [typeorm_1.TypeOrmModule.forFeature([entities_1.OutboxEvent], options.dataSource)], providers: [ createOutboxOptionsProvider(options), createOutboxRepositoryProvider(options.dataSource), services_1.OutboxService, services_1.OutboxCleanupWorker, ], exports: [services_1.OutboxService, services_1.OutboxCleanupWorker], }; } static forRootAsync(options) { return { module: OutboxModule_1, global: options.global, imports: [ ...(options.imports ?? []), typeorm_1.TypeOrmModule.forFeature([entities_1.OutboxEvent], options.dataSource), ], providers: [ createOutboxAsyncOptionsProvider(options), createOutboxRepositoryProvider(options.dataSource), services_1.OutboxService, services_1.OutboxCleanupWorker, ], exports: [services_1.OutboxService, services_1.OutboxCleanupWorker], }; } }; exports.OutboxModule = OutboxModule; exports.OutboxModule = OutboxModule = OutboxModule_1 = __decorate([ (0, common_1.Module)({}) ], OutboxModule); function createOutboxOptionsProvider(options) { return { provide: outbox_constants_1.OUTBOX_MODULE_OPTIONS, useValue: (0, outbox_options_util_1.resolveOutboxModuleOptions)(options), }; } function createOutboxAsyncOptionsProvider(options) { return { provide: outbox_constants_1.OUTBOX_MODULE_OPTIONS, useFactory: async (...args) => (0, outbox_options_util_1.resolveOutboxModuleOptions)(await options.useFactory(...args)), inject: options.inject ?? [], }; } function createOutboxRepositoryProvider(dataSource) { return { provide: outbox_constants_1.OUTBOX_EVENT_REPOSITORY, inject: [(0, typeorm_1.getRepositoryToken)(entities_1.OutboxEvent, dataSource)], useFactory: (repository) => repository, }; } //# sourceMappingURL=outbox.module.js.map