UNPKG

@thatcompany/ts-tool

Version:

基于TypeScript编写的工具库

51 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaskManager = void 0; const IAutoManager_1 = require("../IAutoManager"); const annotation_1 = require("../../annotation"); const logger_1 = require("../../../logger"); const logger = logger_1.LoggerContext.getSubLogger('CronTaskRegister', true); /** * 任务注解管理器 */ class TaskManager extends IAutoManager_1.IAutoManager { clazz = annotation_1.IRegister; keys = [annotation_1.METADATA.TASK.REGISTER]; services = new Map(); async execute() { if (this.entities.size === 0) { return this.services; } for (const key of this.keys) { const entities = this.entities.get(key); if (entities?.size === 0) continue; switch (key) { case annotation_1.METADATA.TASK.REGISTER: for (const entity of entities) { const register = new entity(); if (this.services.has(register.IDENTIFIER_CHILD)) { this.services.get(register.IDENTIFIER_CHILD)?.set(register.NAME, register); } else { this.services.set(register.IDENTIFIER_CHILD, new Map([[register.NAME, register]])); } } break; default: break; } } for (const key of this.services.keys()) { const services = this.services.get(key); if (services?.size === 0) continue; for (const [name, service] of services) { await service.register(); } } return this.services; } } exports.TaskManager = TaskManager; //# sourceMappingURL=TaskManager.js.map