UNPKG

@hypertune/openfeature-web-provider

Version:

OpenFeature provider for Hypertune.

40 lines (39 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HypertuneProvider = void 0; const web_sdk_1 = require("@openfeature/web-sdk"); const openfeature_base_provider_1 = require("@hypertune/openfeature-base-provider"); class HypertuneProvider extends openfeature_base_provider_1.HypertuneProviderBase { constructor() { super(...arguments); this.metadata = { name: HypertuneProvider.name, }; this.events = new web_sdk_1.OpenFeatureEventEmitter(); this.hooks = []; this.runsOn = "client"; } postCreate() { this._source.addUpdateListener((_, { becameReady }) => { if (!becameReady) { this.events.emit(web_sdk_1.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"); } } exports.HypertuneProvider = HypertuneProvider;