ticatec-node-common-library
Version:
A set of common classes for node express apps.
45 lines • 1.67 kB
JavaScript
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
;