diff --git a/packages/sylius/src/api/operations/get-all-products.ts b/packages/sylius/src/api/operations/get-all-products.ts index 57893dea6..48f0992f6 100644 --- a/packages/sylius/src/api/operations/get-all-products.ts +++ b/packages/sylius/src/api/operations/get-all-products.ts @@ -1,24 +1,36 @@ import { Product } from '@vercel/commerce/types/product' -import { GetAllProductsOperation } from '@vercel/commerce/types/product' import type { OperationContext } from '@vercel/commerce/api/operations' -import type { LocalConfig, Provider } from '../index' +import type { Provider, SyliusConfig } from '../index' +import { SyliusProduct } from '../../types' +import { normalizeProduct } from '../../utils/normalize' export default function getAllProductsOperation({ commerce, -}: OperationContext) { - async function getAllProducts({ - query = '', - variables, - config, +}: OperationContext) { + async function getAllProducts(opts?: { + variables?: any + config?: Partial + preview?: boolean + }): Promise<{ products: Product[] }> + + async function getAllProducts({ + config: cfg, + variables = { first: 250 }, }: { query?: string - variables?: T['variables'] - config?: Partial + variables?: any + config?: Partial preview?: boolean - } = {}): Promise<{ products: Product[] | any[] }> { + } = {}): Promise<{ products: Product[] }> { + const config = commerce.getConfig(cfg) + const syliusProducts = await config.fetch('GET', '/products') + const products = syliusProducts.map((syliusProduct: SyliusProduct) => + normalizeProduct(syliusProduct) + ) return { - products: [], + products, } } + return getAllProducts }