UNPKG

elmer-ui-core

Version:

web app framework

58 lines (57 loc) 2.27 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.autoInit = exports.globalClassFactory = void 0; var elmer_common_1 = require("elmer-common"); require("reflect-metadata"); function globalClassFactory(_constructor, options) { var className = _constructor.prototype.className; var paramTypes = Reflect.getMetadata("design:paramtypes", _constructor); var argv = []; var classPoolName; if (elmer_common_1.StaticCommon.isEmpty(className)) { if (!elmer_common_1.StaticCommon.isEmpty(options)) { if (elmer_common_1.StaticCommon.isString(options)) { className = options; classPoolName = options; } else { className = options.className; classPoolName = options.className; } } } if (!elmer_common_1.StaticCommon.isEmpty(options) && elmer_common_1.StaticCommon.isObject(options)) { argv = options.argv || []; } if (!elmer_common_1.StaticCommon.isEmpty(classPoolName)) { if (!elmerData.classPool[classPoolName]) { elmerData.classPool[classPoolName] = _constructor; } } if (elmer_common_1.StaticCommon.isEmpty(className)) { className = _constructor["className"]; } if (!elmerData.objPool[className]) { var paramInstance = Object.prototype.toString.call(paramTypes) === "[object Array]" ? paramTypes.map(function (val) { if (elmerData.classPool.indexOf(val) === -1) { throw new Error(val + "\u6CA1\u6709\u88AB\u6CE8\u518C[" + className + "]"); } else { return globalClassFactory(val); } }) : []; var obj = new (_constructor.bind.apply(_constructor, __spreadArray([void 0], (Array.concat(paramInstance, argv)))))(); elmerData.objPool[className] = obj; return obj; } else { return elmerData.objPool[className]; } } exports.globalClassFactory = globalClassFactory; exports.autoInit = globalClassFactory;