mframejs
Version:
simple framework
41 lines • 1.12 kB
JavaScript
const dep = new Map();
const singelton = new Map();
const transient = new Map();
export class ContainerClasses {
static get(_class) {
const instance = this.getInstance(_class);
return instance;
}
static getInstance(_class) {
if (transient.has(_class)) {
return this.create(_class);
}
else {
if (!singelton.get(_class)) {
singelton.set(_class, this.create(_class));
}
return singelton.get(_class);
}
}
static create(_class) {
let deps = dep.get(_class) || [];
deps = deps.map((classX) => {
try {
return this.get(classX);
}
catch (e) {
return classX;
}
});
return new _class(...deps);
}
static setDep(_class, deps) {
dep.set(_class, deps);
}
static regTransient(_class) {
if (!transient.has(_class)) {
transient.set(_class, null);
}
}
}
//# sourceMappingURL=containerClasses.js.map