UNPKG

unleash-server

Version:

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

35 lines 1.34 kB
import memoizee from 'memoizee'; import { maintenanceSettingsKey } from '../../types/settings/maintenance-settings.js'; import { minutesToMilliseconds } from 'date-fns'; export default class MaintenanceService { constructor(config, settingService) { this.config = config; this.logger = config.getLogger('services/maintenance-service.ts'); this.settingService = settingService; this.resolveMaintenance = memoizee(async () => (await this.getMaintenanceSetting()).enabled, { promise: true, maxAge: minutesToMilliseconds(1), }); } async isMaintenanceMode() { try { return (this.config.flagResolver.isEnabled('maintenanceMode') || (await this.resolveMaintenance())); } catch (e) { this.logger.warn('Error checking maintenance mode', e); return false; } } async getMaintenanceSetting() { return this.settingService.getWithDefault(maintenanceSettingsKey, { enabled: false, }); } async toggleMaintenanceMode(setting, auditUser) { //@ts-ignore this.resolveMaintenance.clear(); return this.settingService.insert(maintenanceSettingsKey, setting, auditUser, false); } } //# sourceMappingURL=maintenance-service.js.map