export function singleton(clazz) { let instance; return new Proxy(clazz, { construct(target, args) { if (instance) { return instance; } else { instance = new target(...args); return instance; } }, }); }