UNPKG

@hypertune/openfeature-server-provider

Version:

OpenFeature provider for Hypertune.

36 lines (35 loc) 1.47 kB
import { OpenFeatureEventEmitter, ProviderEvents, } from "@openfeature/server-sdk"; import { HypertuneProviderBase } from "@hypertune/openfeature-base-provider"; export class HypertuneProvider extends HypertuneProviderBase { constructor() { super(...arguments); this.metadata = { name: HypertuneProvider.name, }; this.events = new OpenFeatureEventEmitter(); this.hooks = []; this.runsOn = "server"; } postCreate() { this._source.addUpdateListener((_, { becameReady }) => { if (!becameReady) { this.events.emit(ProviderEvents.ConfigurationChanged); } }); } resolveBooleanEvaluation(flagKey, defaultValue, context) { return this.resolveValueAsync(flagKey, defaultValue, context, "boolean"); } resolveStringEvaluation(flagKey, defaultValue, context) { return this.resolveValueAsync(flagKey, defaultValue, context, "string"); } resolveNumberEvaluation(flagKey, defaultValue, context) { return this.resolveValueAsync(flagKey, defaultValue, context, "number"); } resolveObjectEvaluation(flagKey, defaultValue, context) { return this.resolveValueAsync(flagKey, defaultValue, context, "any"); } resolveValueAsync(flagKey, defaultValue, context, expectedValueType) { return Promise.resolve(this.resolveValue(flagKey, defaultValue, context, expectedValueType)); } }