UNPKG

@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
"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