nise/nise-replay-viewer/src/decorators/singleton.ts
2024-03-03 16:22:03 +01:00

15 lines
281 B
TypeScript

export function Singleton<T extends new (...args: any[]) => any>(ctr: T): T {
let instance: T;
return class {
constructor(...args: any[]) {
if (instance) {
return instance;
}
instance = new ctr(...args);
return instance;
}
} as T;
}