commerce/framework/medusa/api/operations/get-all-product-paths.ts
2021-09-14 17:45:35 +02:00

36 lines
909 B
TypeScript

import { OperationContext } from '@commerce/api/operations'
import { Product } from '@commerce/types/product'
import { MedusaProduct } from '@framework/types'
import { MedusaConfig } from '..'
export type GetAllProductPathsResult = {
products: Array<{ path: string }>
}
export default function getAllProductPathsOperation({
commerce,
}: OperationContext<any>) {
async function getAllProductsPaths({
config: cfg,
}: {
config?: Partial<MedusaConfig>
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
}