UNPKG

@nestjs/core

Version:

Nest - modern, fast, powerful node.js web framework (@core)

50 lines (49 loc) 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MiddlewareContainer = void 0; const get_class_scope_1 = require("../helpers/get-class-scope"); const is_durable_1 = require("../helpers/is-durable"); const instance_wrapper_1 = require("../injector/instance-wrapper"); class MiddlewareContainer { constructor(container) { this.container = container; this.middleware = new Map(); this.configurationSets = new Map(); } getMiddlewareCollection(moduleKey) { if (!this.middleware.has(moduleKey)) { const moduleRef = this.container.getModuleByKey(moduleKey); this.middleware.set(moduleKey, moduleRef.middlewares); } return this.middleware.get(moduleKey); } getConfigurations() { return this.configurationSets; } insertConfig(configList, moduleKey) { const middleware = this.getMiddlewareCollection(moduleKey); const targetConfig = this.getTargetConfig(moduleKey); const configurations = configList || []; const insertMiddleware = (metatype) => { const token = metatype; middleware.set(token, new instance_wrapper_1.InstanceWrapper({ scope: (0, get_class_scope_1.getClassScope)(metatype), durable: (0, is_durable_1.isDurable)(metatype), name: token?.name ?? token, metatype, token, })); }; configurations.forEach(config => { [].concat(config.middleware).map(insertMiddleware); targetConfig.add(config); }); } getTargetConfig(moduleName) { if (!this.configurationSets.has(moduleName)) { this.configurationSets.set(moduleName, new Set()); } return this.configurationSets.get(moduleName); } } exports.MiddlewareContainer = MiddlewareContainer;