commerce/packages/kibocommerce/api/operations/get-all-product-paths.ts
2022-01-14 13:33:59 -05:00

27 lines
964 B
TypeScript

import { KiboCommerceConfig } from '../index'
import { getAllProductsQuery } from '../queries/get-all-products-query';
import { normalizeProduct } from '../../lib/normalize'
export type GetAllProductPathsResult = {
products: Array<{ path: string }>
}
export default function getAllProductPathsOperation({commerce,}: any) {
async function getAllProductPaths({ config }: {config?: KiboCommerceConfig } = {}): Promise<GetAllProductPathsResult> {
const cfg = commerce.getConfig(config)
const productVariables = {startIndex: 0, pageSize: 100};
const { data } = await cfg.fetch(getAllProductsQuery, { variables: productVariables });
const normalizedProducts = data.products.items ? data.products.items.map( (item:any) => normalizeProduct(item, cfg)) : [];
const products = normalizedProducts.map((product: any) => ({ path: product.path }))
return Promise.resolve({
products: products
})
}
return getAllProductPaths
}