UNPKG

kist

Version:

Lightweight Package Pipeline Processor with Plugin Architecture

21 lines 780 B
export class AbstractSingleton { constructor() { const className = this.constructor.name; if (AbstractSingleton._instances.has(className)) { throw new Error(`${className} is a singleton and has already been instantiated.`); } AbstractSingleton._instances.set(className, this); } static getInstance() { const className = this.name; if (!AbstractSingleton._instances.has(className)) { AbstractSingleton._instances.set(className, new this()); } return AbstractSingleton._instances.get(className); } static clearInstance() { AbstractSingleton._instances.delete(this.name); } } AbstractSingleton._instances = new Map(); //# sourceMappingURL=AbstractSingleton.js.map