UNPKG

@thatcompany/ts-tool

Version:

基于TypeScript编写的工具库

54 lines 2.28 kB
"use strict"; 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