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
JavaScript
;
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;