UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

44 lines 1.67 kB
import EventEmitter from 'events'; export const UPDATE_REVISION = 'UPDATE_REVISION'; export default class ConfigurationRevisionService extends EventEmitter { constructor({ eventStore }, { getLogger, flagResolver, }) { super(); this.logger = getLogger('configuration-revision-service.ts'); this.eventStore = eventStore; this.flagResolver = flagResolver; this.revisionId = 0; } static getInstance({ eventStore }, { getLogger, flagResolver, }) { if (!ConfigurationRevisionService.instance) { ConfigurationRevisionService.instance = new ConfigurationRevisionService({ eventStore }, { getLogger, flagResolver }); } return ConfigurationRevisionService.instance; } async getMaxRevisionId() { if (this.revisionId > 0) { return this.revisionId; } else { return this.updateMaxRevisionId(); } } async updateMaxRevisionId(emit = true) { if (this.flagResolver.isEnabled('disableUpdateMaxRevisionId')) { return 0; } const revisionId = await this.eventStore.getMaxRevisionId(this.revisionId); if (this.revisionId !== revisionId) { this.logger.debug('Updating feature configuration with new revision Id', revisionId); this.revisionId = revisionId; if (emit) { this.emit(UPDATE_REVISION, revisionId); } } return this.revisionId; } destroy() { ConfigurationRevisionService.instance?.removeAllListeners(); } } //# sourceMappingURL=configuration-revision-service.js.map