import { GetProductOperation, Product } from '@vercel/commerce/types/product' import type { SFCCConfig } from '../index' import type { OperationContext } from '@vercel/commerce/api/operations' import { normalizeProduct } from '../utils/normalise-product' export default function getProductOperation({ commerce, }: OperationContext) { async function getProduct({ query = '', variables, config, }: { query?: string variables?: T['variables'] config?: Partial preview?: boolean } = {}): Promise { // TODO: support locale const { sdk, locale } = commerce.getConfig(config) as SFCCConfig const shopperProductsClient = await sdk.getshopperProductsClient() const product = await shopperProductsClient.getProduct({ parameters: { id: variables?.slug as string }, }) const normalizedProduct = normalizeProduct(product) return { product: normalizedProduct, } } return getProduct }