@hypertune/openfeature-server-provider
Version:
OpenFeature provider for Hypertune.
40 lines (39 loc) • 1.66 kB
JavaScript
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;
;