@thatcompany/ts-tool
Version:
基于TypeScript编写的工具库
54 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigureManager = void 0;
require("reflect-metadata");
const annotation_1 = require("../../annotation");
const IAutoManager_1 = require("../IAutoManager");
const logger_1 = require("../../../logger");
const logger = logger_1.LoggerContext.getSubLogger('ConfigureManager', true);
/**
* 配置注解管理器
*/
class ConfigureManager extends IAutoManager_1.IAutoManager {
clazz = annotation_1.IConfigure;
keys = [annotation_1.METADATA.CONFIGURE];
services = new Map();
async execute() {
if (this.entities.size === 0) {
return this.services;
}
for (const key of this.keys) {
logger.silly('------------------------------');
logger.silly('🌟 扫描配置实体:全局配置');
const entities = this.entities.get(key);
if (entities?.size === 0)
continue;
for (const entity of entities) {
const instance = new entity();
if (this.services.has(instance.IDENTIFIER)) {
this.services.get(instance.IDENTIFIER)?.set(instance.NAME, instance);
}
else {
this.services.set(instance.IDENTIFIER, new Map([[instance.NAME, instance]]));
}
logger.silly('发现配置类实体:' + instance.NAME);
}
logger.silly('🪶 扫描配置实体:全局配置实体扫描完成');
logger.silly('------------------------------\n');
}
logger.silly('------------------------------');
logger.silly('🌟 调用配置实体:全局配置');
for (const key of this.services.keys()) {
const instances = this.services.get(key);
for (const [name, instance] of instances) {
logger.silly('调用配置实体:' + name);
await instance.configure();
}
}
logger.silly('🪶 配置实体:全局配置实体调用完成');
logger.silly('------------------------------\n');
return this.services;
}
}
exports.ConfigureManager = ConfigureManager;
//# sourceMappingURL=ConfigureManager.js.map