mframejs
Version:
simple framework
47 lines • 1.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var dep = new Map();
var singelton = new Map();
var transient = new Map();
var ContainerClasses = (function () {
function ContainerClasses() {
}
ContainerClasses.get = function (_class) {
var instance = this.getInstance(_class);
return instance;
};
ContainerClasses.getInstance = function (_class) {
if (transient.has(_class)) {
return this.create(_class);
}
else {
if (!singelton.get(_class)) {
singelton.set(_class, this.create(_class));
}
return singelton.get(_class);
}
};
ContainerClasses.create = function (_class) {
var _this = this;
var deps = dep.get(_class) || [];
deps = deps.map(function (classX) {
try {
return _this.get(classX);
}
catch (e) {
return classX;
}
});
return new (_class.bind.apply(_class, [void 0].concat(deps)))();
};
ContainerClasses.setDep = function (_class, deps) {
dep.set(_class, deps);
};
ContainerClasses.regTransient = function (_class) {
if (!transient.has(_class)) {
transient.set(_class, null);
}
};
return ContainerClasses;
}());
exports.ContainerClasses = ContainerClasses;
//# sourceMappingURL=containerClasses.js.map