UNPKG

ticatec-node-common-library

Version:

A set of common classes for node express apps.

45 lines 1.67 kB
"use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _BeanFactory_map; Object.defineProperty(exports, "__esModule", { value: true }); const Scope_1 = require("./Scope"); class BeanFactory { constructor() { _BeanFactory_map.set(this, new Map()); } /** * 注册一个bean creator * @param name * @param beanClass * @param scope */ register(name, beanClass, scope = Scope_1.Scope.Singleton) { __classPrivateFieldGet(this, _BeanFactory_map, "f").set(name, { beanClass, scope }); } /** * 获取一个实例 * @param name */ getInstance(name) { let item = __classPrivateFieldGet(this, _BeanFactory_map, "f").get(name); if (item != null) { if (item.scope == Scope_1.Scope.Prototype) { return new item.beanClass(); } else { if (item.beanInstance == null) { item.beanInstance = new item.beanClass(); } } return item.beanInstance; } } } _BeanFactory_map = new WeakMap(); let beanFactory = new BeanFactory(); exports.default = beanFactory; //# sourceMappingURL=BeanFactory.js.map