@automattic/calypso-products
Version:
This module contains information about the various products sold within calypso, such as product slugs, plan intervals, etc.
90 lines • 4.36 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.planFeaturesIncludesProducts = exports.redirectCheckoutToWpAdmin = exports.getPlanMultipleTermsVariantSlugs = exports.getPlanSlugForTermVariant = void 0;
exports.getTermDuration = getTermDuration;
exports.getTermFromDuration = getTermFromDuration;
const constants_1 = require("./constants");
var get_plan_term_variant_1 = require("./get-plan-term-variant");
Object.defineProperty(exports, "getPlanSlugForTermVariant", { enumerable: true, get: function () { return get_plan_term_variant_1.getPlanSlugForTermVariant; } });
var get_plan_multiple_terms_variant_slugs_1 = require("./get-plan-multiple-terms-variant-slugs");
Object.defineProperty(exports, "getPlanMultipleTermsVariantSlugs", { enumerable: true, get: function () { return get_plan_multiple_terms_variant_slugs_1.getPlanMultipleTermsVariantSlugs; } });
/**
* Return estimated duration of given PLAN_TERM in days
* @param {string} term TERM_ constant
* @returns {number} Term duration
*/
function getTermDuration(term) {
switch (term) {
case constants_1.TERM_MONTHLY:
return constants_1.PLAN_MONTHLY_PERIOD;
case constants_1.TERM_ANNUALLY:
return constants_1.PLAN_ANNUAL_PERIOD;
case constants_1.TERM_BIENNIALLY:
return constants_1.PLAN_BIENNIAL_PERIOD;
case constants_1.TERM_TRIENNIALLY:
return constants_1.PLAN_TRIENNIAL_PERIOD;
case constants_1.TERM_QUADRENNIALLY:
return constants_1.PLAN_QUADRENNIAL_PERIOD;
case constants_1.TERM_QUINQUENNIALLY:
return constants_1.PLAN_QUINQUENNIAL_PERIOD;
case constants_1.TERM_SEXENNIALLY:
return constants_1.PLAN_SEXENNIAL_PERIOD;
case constants_1.TERM_SEPTENNIALLY:
return constants_1.PLAN_SEPTENNIAL_PERIOD;
case constants_1.TERM_OCTENNIALLY:
return constants_1.PLAN_OCTENNIAL_PERIOD;
case constants_1.TERM_NOVENNIALLY:
return constants_1.PLAN_NOVENNIAL_PERIOD;
case constants_1.TERM_DECENNIALLY:
return constants_1.PLAN_DECENNIAL_PERIOD;
case constants_1.TERM_CENTENNIALLY:
return constants_1.PLAN_CENTENNIAL_PERIOD;
}
}
/**
* Gvien duration in days returnn the PLAN_TERM
* @param {number} days Term duration in days
* @returns {string} TERM_ constant
*/
function getTermFromDuration(days) {
switch (days) {
case constants_1.PLAN_MONTHLY_PERIOD:
return constants_1.TERM_MONTHLY;
case constants_1.PLAN_ANNUAL_PERIOD:
return constants_1.TERM_ANNUALLY;
case constants_1.PLAN_BIENNIAL_PERIOD:
return constants_1.TERM_BIENNIALLY;
case constants_1.PLAN_TRIENNIAL_PERIOD:
return constants_1.TERM_TRIENNIALLY;
case constants_1.PLAN_QUADRENNIAL_PERIOD:
return constants_1.TERM_QUADRENNIALLY;
case constants_1.PLAN_QUINQUENNIAL_PERIOD:
return constants_1.TERM_QUINQUENNIALLY;
case constants_1.PLAN_SEXENNIAL_PERIOD:
return constants_1.TERM_SEXENNIALLY;
case constants_1.PLAN_SEPTENNIAL_PERIOD:
return constants_1.TERM_SEPTENNIALLY;
case constants_1.PLAN_OCTENNIAL_PERIOD:
return constants_1.TERM_OCTENNIALLY;
case constants_1.PLAN_NOVENNIAL_PERIOD:
return constants_1.TERM_NOVENNIALLY;
case constants_1.PLAN_DECENNIAL_PERIOD:
return constants_1.TERM_DECENNIALLY;
case constants_1.PLAN_CENTENNIAL_PERIOD:
return constants_1.TERM_CENTENNIALLY;
}
}
const redirectCheckoutToWpAdmin = () => !!constants_1.JETPACK_REDIRECT_CHECKOUT_TO_WPADMIN;
exports.redirectCheckoutToWpAdmin = redirectCheckoutToWpAdmin;
/**
* Given an array of plan Features and an array of Product slugs, it returns which products are
* included in the plan Features.
* @param {ReadonlyArray< string >} planFeatures Array of plan Feature slugs
* @param {ReadonlyArray< string >} products Array of Product slugs
* @returns {string[]} Array of Product slugs
*/
const planFeaturesIncludesProducts = (planFeatures, products) => {
return products.some((product) => planFeatures.includes(product));
};
exports.planFeaturesIncludesProducts = planFeaturesIncludesProducts;
//# sourceMappingURL=plans-utilities.js.map