UNPKG

pricing4ts

Version:

![NPM Version](https://img.shields.io/npm/v/pricing4ts) Pricing4TS is a TypeScript-based toolkit designed to enhance the server-side functionality of a pricing-driven SaaS by enabling the seamless integration of pricing plans into the application logic. T

77 lines (76 loc) 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodePricingDrivenFeaturesProvider = void 0; var server_sdk_1 = require("@openfeature/server-sdk"); var server_1 = require("../server"); var NodePricingDrivenFeaturesProvider = /** @class */ (function () { function NodePricingDrivenFeaturesProvider(pricingContext) { this.metadata = { name: 'nodejs-pricing-driven-features', description: 'A server provider that enables features based on pricing information', }; this.runsOn = 'server'; this.events = new server_sdk_1.OpenFeatureEventEmitter(); server_1.PricingContextManager.registerContext(pricingContext); } NodePricingDrivenFeaturesProvider.prototype.resolveBooleanEvaluation = function (flagKey, defaultValue) { try { return Promise.resolve({ value: this._evaluateFeature(flagKey).value.eval, }); } catch (e) { console.error("Error occurred during evaluation. ERROR: " + e.message); return Promise.resolve({ value: defaultValue, }); } }; NodePricingDrivenFeaturesProvider.prototype.resolveStringEvaluation = function (flagKey, defaultValue) { try { var result = this._evaluateFeature(flagKey).value.eval; return Promise.resolve({ value: result.toString(), }); } catch (e) { console.error("Error occurred during evaluation. ERROR: " + e.message); return Promise.resolve({ value: defaultValue, }); } }; NodePricingDrivenFeaturesProvider.prototype.resolveNumberEvaluation = function (flagKey, defaultValue) { try { var result = this._evaluateFeature(flagKey).value.eval; return Promise.resolve({ value: result ? 1 : 0, }); } catch (e) { console.error("Error occurred during evaluation. ERROR: " + e.message); return Promise.resolve({ value: defaultValue, }); } }; NodePricingDrivenFeaturesProvider.prototype.resolveObjectEvaluation = function (flagKey, defaultValue) { try { return Promise.resolve(this._evaluateFeature(flagKey)); } catch (e) { console.error("Error occurred during evaluation. ERROR: " + e.message); return Promise.resolve({ value: defaultValue, }); } }; NodePricingDrivenFeaturesProvider.prototype._evaluateFeature = function (flagKey) { var result = (0, server_1.evaluateFeature)(flagKey); return { value: result, }; }; return NodePricingDrivenFeaturesProvider; }()); exports.NodePricingDrivenFeaturesProvider = NodePricingDrivenFeaturesProvider;