sinotron
Version:
Simple framework for Typescript Electron projects
28 lines (27 loc) • 608 B
JavaScript
// class Foo {
// constructor(a: string) {}
//
// toString() {
// return 'foo';
// }
// }
// function inst<T>(c: Cls<T>) {
// return new c();
// }
const container = new Map();
export const Instance = {
get(c, ...args) {
return new c(...args);
},
singleton(c, ...args) {
let inst = container.get(c);
if (!inst) {
inst = new c(...args);
container.set(c, inst);
}
return inst;
}
};
// const fooInstance = Instance.get(Foo);
// // const fooInstance = inst(Foo);
// console.log('->', fooInstance.toString());