@automattic/calypso-products
Version:
This module contains information about the various products sold within calypso, such as product slugs, plan intervals, etc.
22 lines (19 loc) • 846 B
text/typescript
import { TERMS_LIST } from './constants';
import { PRODUCTS_LIST } from './products-list';
import type { ProductSlug } from './types';
/**
* Return a list of products that are similar to the product passed as argument, but with different terms.
* @param {ProductSlug} productSlug Slug of the product to get the term variants from
* @returns {string[]} Slugs of the product variants
*/
export function getProductTermVariants( productSlug: ProductSlug ): string[] | undefined {
const product = PRODUCTS_LIST[ productSlug ];
if ( product ) {
return Object.values( PRODUCTS_LIST )
.filter( ( { type } ) => type === product.type )
.filter( ( { term } ) => TERMS_LIST.includes( term ) )
.filter( ( { product_slug } ) => product_slug !== product.product_slug )
.map( ( { product_slug } ) => product_slug );
}
return undefined;
}