UNPKG

@hypertune/openfeature-server-provider

Version:

OpenFeature provider for Hypertune.

40 lines (39 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HypertuneProvider = void 0; const server_sdk_1 = require("@openfeature/server-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 server_sdk_1.OpenFeatureEventEmitter(); this.hooks = []; this.runsOn = "server"; } postCreate() { this._source.addUpdateListener((_, { becameReady }) => { if (!becameReady) { this.events.emit(server_sdk_1.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)); } } exports.HypertuneProvider = HypertuneProvider;