UNPKG

@mbc-cqrs-serverless/import

Version:
77 lines 4.26 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImportModule = void 0; const core_1 = require("@mbc-cqrs-serverless/core"); const common_1 = require("@nestjs/common"); const command_finished_queue_event_handler_1 = require("./event/command-finished.queue.event.handler"); const csv_import_queue_event_handler_1 = require("./event/csv-import.queue.event.handler"); const csv_import_sfn_event_handler_1 = require("./event/csv-import.sfn.event.handler"); const import_event_handler_1 = require("./event/import.event.handler"); const import_queue_event_handler_1 = require("./event/import.queue.event.handler"); const import_status_queue_event_handler_1 = require("./event/import-status.queue.event.handler"); const zip_import_queue_event_handler_1 = require("./event/zip-import.queue.event.handler"); const zip_import_sfn_event_handler_1 = require("./event/zip-import.sfn.event.handler"); const import_controller_1 = require("./import.controller"); const import_module_definition_1 = require("./import.module-definition"); const import_service_1 = require("./import.service"); let ImportModule = class ImportModule extends import_module_definition_1.ConfigurableModuleClass { static register(options) { const module = super.register(options); const { enableController, profiles, imports } = options; module.imports = [...(module.imports || []), ...(imports || [])]; const dynamicProviders = [ this.createStrategyMapFactory(import_module_definition_1.IMPORT_STRATEGY_MAP, profiles, (p) => p.importStrategy), this.createStrategyMapFactory(import_module_definition_1.PROCESS_STRATEGY_MAP, profiles, (p) => p.processStrategy), ]; module.providers = [...(module.providers || []), ...dynamicProviders]; if (enableController) { module.controllers = [...(module.controllers || []), import_controller_1.ImportController]; } return module; } /** * A private helper to create a factory provider for a strategy map. * This factory injects all necessary strategy instances and maps them * to their corresponding tableName from the profiles. */ static createStrategyMapFactory(provide, profiles, classExtractor) { // Extract the class types to be used as injection tokens const injectionTokens = profiles.map(classExtractor); return { provide, useFactory: (...instances) => { const map = new Map(); instances.forEach((instance, index) => { map.set(profiles[index].tableName, instance); }); return map; }, inject: injectionTokens, }; } }; exports.ImportModule = ImportModule; exports.ImportModule = ImportModule = __decorate([ (0, common_1.Module)({ imports: [core_1.DataStoreModule, core_1.QueueModule], providers: [ import_service_1.ImportService, import_event_handler_1.ImportEventHandler, import_queue_event_handler_1.ImportQueueEventHandler, csv_import_queue_event_handler_1.CsvImportQueueEventHandler, csv_import_sfn_event_handler_1.CsvImportSfnEventHandler, command_finished_queue_event_handler_1.CommandFinishedHandler, import_status_queue_event_handler_1.ImportStatusHandler, zip_import_queue_event_handler_1.ZipImportQueueEventHandler, zip_import_sfn_event_handler_1.ZipImportSfnEventHandler, ], exports: [import_service_1.ImportService], }) ], ImportModule); //# sourceMappingURL=import.module.js.map