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
30 lines (29 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNumberOfUsageLimits = getNumberOfUsageLimits;
exports.getUsageLimitNames = getUsageLimitNames;
exports.calculateLinkedFeaturesMatrix = calculateLinkedFeaturesMatrix;
function getNumberOfUsageLimits(usageLimits) {
return usageLimits ? Object.keys(usageLimits).length : 0;
}
function getUsageLimitNames(usageLimits) {
return usageLimits ? Object.values(usageLimits).map(function (usageLimit) { return usageLimit.name; }) : [];
}
function calculateLinkedFeaturesMatrix(usageLimits, featureNames) {
var matrix = [];
for (var i = 0; i < Object.keys(usageLimits).length; i++) {
var row = [];
var usageLimit = usageLimits[Object.keys(usageLimits)[i]];
var linkedFeatures = usageLimit.linkedFeatures;
if (!linkedFeatures) {
matrix.push(new Array(featureNames.length).fill(0));
continue;
}
for (var j = 0; j < featureNames.length; j++) {
var isLinkedToFeature = linkedFeatures.includes(featureNames[j]) ? 1 : 0;
row.push(isLinkedToFeature);
}
matrix.push(row);
}
return matrix;
}