UNPKG

@automattic/calypso-products

Version:

This module contains information about the various products sold within calypso, such as product slugs, plan intervals, etc.

50 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDIFMTieredPriceDetails = getDIFMTieredPriceDetails; const is_difm_product_1 = require("./is-difm-product"); /** * Returns meaningful DIFM purchase details related to tiered difm prices if available * Returns null if this is not a DIFM purchase or the proper related price tier information is not available. * Returns just the price details if noOfPages is not passed. * Returns the price details alongwith calculated values of extraPageCount and extraPagesPrice is noOfPages is passed. * @param { Product | any } product product to get details from * @param { number } noOfPages the number of pages required * @returns {Object} with the relevent tier details */ function getDIFMTieredPriceDetails(product, noOfPages) { if (!product || !(0, is_difm_product_1.isDIFMProduct)(product) || !product.price_tier_list || !Array.isArray(product.price_tier_list) || product.price_tier_list.length === 0) { return null; } const [tier0, tier1] = product.price_tier_list; const perExtraPagePrice = tier1.minimum_price - tier0.minimum_price; const { maximum_units: numberOfIncludedPages, minimum_price: oneTimeFee, minimum_price_display: formattedOneTimeFee, } = tier0; let extraPagesPrice = null; let extraPageCount = null; if (numberOfIncludedPages && noOfPages) { if (noOfPages <= numberOfIncludedPages) { return { extraPageCount: 0, numberOfIncludedPages, extraPagesPrice: 0, oneTimeFee, formattedOneTimeFee, perExtraPagePrice, }; } extraPageCount = noOfPages - numberOfIncludedPages; extraPagesPrice = extraPageCount * perExtraPagePrice; } return { extraPageCount, numberOfIncludedPages, extraPagesPrice, oneTimeFee, formattedOneTimeFee, perExtraPagePrice, }; } //# sourceMappingURL=get-difm-tiered-price-details.js.map