pricing4ts
Version:
 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
JavaScript
;
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;