UNPKG

@hypertune/openfeature-web-provider

Version:

OpenFeature provider for Hypertune.

36 lines (35 loc) 1.35 kB
import { OpenFeatureEventEmitter, ProviderEvents, } from "@openfeature/web-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 = "client"; } postCreate() { this._source.addUpdateListener((_, { becameReady }) => { if (!becameReady) { this.events.emit(ProviderEvents.ConfigurationChanged); } }); } onContextChange(oldContext, newContext) { this.setRoot(newContext); } resolveBooleanEvaluation(flagKey, defaultValue, context) { return this.resolveValue(flagKey, defaultValue, context, "boolean"); } resolveStringEvaluation(flagKey, defaultValue, context) { return this.resolveValue(flagKey, defaultValue, context, "string"); } resolveNumberEvaluation(flagKey, defaultValue, context) { return this.resolveValue(flagKey, defaultValue, context, "number"); } resolveObjectEvaluation(flagKey, defaultValue, context) { return this.resolveValue(flagKey, defaultValue, context, "any"); } }