import { OperationContext } from '@commerce/api/operations' import { Product } from '@commerce/types/product' import { Product as MedusaProduct } from '@medusajs/medusa-js/lib/types' import { MedusaConfig } from '..' export type GetAllProductPathsResult = { products: Array<{ path: string }> } export default function getAllProductPathsOperation({ commerce, }: OperationContext) { async function getAllProductsPaths({ config: cfg, }: { config?: Partial preview?: boolean } = {}): Promise<{ products: Product[] | any[] }> { const config = commerce.getConfig(cfg) const results = await config.fetch('products', 'list', {}) const productHandles = results.data?.products ? results.data.products.map(({ handle }: MedusaProduct) => ({ path: `/${handle}`, })) : [] return { products: productHandles, } } return getAllProductsPaths }