Spaces:
Sleeping
Sleeping
File size: 1,920 Bytes
cfbbc1a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | "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;
|