UNPKG

tg-commander

Version:

<p align="center"><img src="https://github.com/stone-jin/tg-commander/raw/master/assets/logo.png" alt="tg-commander logo" width="150px" height="150px"></p>

28 lines (27 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var inject_manage_1 = require("../manange/inject-manage"); var function_reflect_utils_1 = require("../utils/function-reflect-utils"); var ioc_utils_1 = require("../utils/ioc-utils"); var params_utils_1 = require("../utils/params-utils"); function TgService(cls) { var paramTypes = function_reflect_utils_1.FunctionReflectUtils.getFunctionTypes(cls); var paramNames = params_utils_1.ParamsUtils.getConstructorParamList(cls); if (paramTypes) { for (var i = 0; i < paramTypes.length; i++) { if (!paramTypes[i]) { console.error(cls.name + "\u6784\u9020\u51FD\u6570\u4E2D\u7684" + paramNames[i] + " \u4E0D\u80FD\u88AB\u6CE8\u5165,\n \u56E0\u4E3A" + paramNames[i] + " \u7C7B\u578B\u7684\u6784\u9020\u51FD\u6570\u4E2D\u53C8\u6CE8\u5165\u4E86" + cls.name + "\u7684\u6210\u5458"); process.exit(-1); } } } var params = ioc_utils_1.IocUtils.iocInject(cls, paramNames, paramTypes); var instance = Reflect.construct(cls, params); inject_manage_1.InjectManager.getInstance().setType(cls, instance); cls.instance = instance; cls.getInstance = function () { return instance; }; cls.schedule = cls.prototype.schedule; } exports.TgService = TgService;