UNPKG

sinotron

Version:

Simple framework for Typescript Electron projects

28 lines (27 loc) 608 B
// 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());