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

55 lines (54 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPlanNames = getPlanNames; exports.getPlanPrices = getPlanPrices; exports.calculatePlanFeaturesMatrix = calculatePlanFeaturesMatrix; exports.calculatePlanUsageLimitsMatrix = calculatePlanUsageLimitsMatrix; var number_utils_1 = require("../../../server/utils/dzn-exporter/number-utils"); function getPlanNames(plans) { if (!plans) { return []; } return Object.values(plans).map(function (plan) { return plan.name; }); } function getPlanPrices(plans) { var prices = []; if (!plans) { return prices; } var planKeys = Object.keys(plans); for (var i = 0; i < planKeys.length; i++) { var price = plans[planKeys[i]].price; if (typeof price === 'number') { prices.push(price); } else if (typeof price === 'string') { prices.push(10 * prices[i - 1]); } } return prices; } function calculatePlanFeaturesMatrix(plans) { var matrix = []; for (var plan in plans) { var planFeatures = plans[plan].features; var row = (0, number_utils_1.calculateOverriddenRow)(planFeatures); matrix.push(row); } return matrix; } function calculatePlanUsageLimitsMatrix(usageLimits, plans) { var matrix = []; if (Object.keys(usageLimits).length === 0) { return matrix; } for (var plan in plans) { var usageLimits_1 = plans[plan].usageLimits; if (!usageLimits_1) { continue; } var row = (0, number_utils_1.calculateOverriddenRow)(usageLimits_1); matrix.push(row); } return matrix; }