UNPKG

unleash-server

Version:

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

46 lines 1.64 kB
import ky from 'ky'; import { addonDefinitionSchema } from './addon-schema.js'; import { ADDON_EVENTS_HANDLED } from '../metric-events.js'; export default class Addon { constructor(definition, { getLogger, integrationEventsService, flagResolver, eventBus, }) { this.logger = getLogger(`addon/${definition.name}`); const { error } = addonDefinitionSchema.validate(definition); if (error) { this.logger.warn(`Could not load addon provider ${definition.name}`, error); throw error; } this._name = definition.name; this._definition = definition; this.integrationEventsService = integrationEventsService; this.eventBus = eventBus; this.flagResolver = flagResolver; } get name() { return this._name; } get definition() { return this._definition; } async fetchRetry(url, options = {}, retries = 1) { try { const res = await ky(url, { retry: retries, ...options, }); return res; } catch (e) { const { method } = options; this.logger.warn(`Error querying ${url} with method ${method || 'GET'} status code ${e.code}`, e); return { status: e.code, ok: false }; } } async registerEvent(integrationEvent) { await this.integrationEventsService.registerEvent(integrationEvent); this.eventBus.emit(ADDON_EVENTS_HANDLED, { result: integrationEvent.state, destination: this.name, }); } } //# sourceMappingURL=addon.js.map