UNPKG

2.02 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.MiddlewareContainer = void 0;
4const get_class_scope_1 = require("../helpers/get-class-scope");
5const is_durable_1 = require("../helpers/is-durable");
6const instance_wrapper_1 = require("../injector/instance-wrapper");
7class MiddlewareContainer {
8 constructor(container) {
9 this.container = container;
10 this.middleware = new Map();
11 this.configurationSets = new Map();
12 }
13 getMiddlewareCollection(moduleKey) {
14 if (!this.middleware.has(moduleKey)) {
15 const moduleRef = this.container.getModuleByKey(moduleKey);
16 this.middleware.set(moduleKey, moduleRef.middlewares);
17 }
18 return this.middleware.get(moduleKey);
19 }
20 getConfigurations() {
21 return this.configurationSets;
22 }
23 insertConfig(configList, moduleKey) {
24 const middleware = this.getMiddlewareCollection(moduleKey);
25 const targetConfig = this.getTargetConfig(moduleKey);
26 const configurations = configList || [];
27 const insertMiddleware = (metatype) => {
28 var _a;
29 const token = metatype;
30 middleware.set(token, new instance_wrapper_1.InstanceWrapper({
31 scope: (0, get_class_scope_1.getClassScope)(metatype),
32 durable: (0, is_durable_1.isDurable)(metatype),
33 name: (_a = token === null || token === void 0 ? void 0 : token.name) !== null && _a !== void 0 ? _a : token,
34 metatype,
35 token,
36 }));
37 };
38 configurations.forEach(config => {
39 [].concat(config.middleware).map(insertMiddleware);
40 targetConfig.add(config);
41 });
42 }
43 getTargetConfig(moduleName) {
44 if (!this.configurationSets.has(moduleName)) {
45 this.configurationSets.set(moduleName, new Set());
46 }
47 return this.configurationSets.get(moduleName);
48 }
49}
50exports.MiddlewareContainer = MiddlewareContainer;