import { OperationContext } from '@vercel/commerce/api/operations' import { Category } from '@vercel/commerce/types/site' import { NormalizeCategory } from '../utils/normalize' import { LocalConfig } from '../index' import { AppibaseCollection } from '../../types' export type GetSiteInfoResult< T extends { categories: any[]; brands: any[] } = { categories: Category[] brands: any[] } > = T export default function getSiteInfoOperation({ commerce }: OperationContext) { async function getSiteInfo({ query, variables, config, }: { query?: string variables?: any config?: Partial preview?: boolean } = {}): Promise { const { fetch } = commerce.getConfig(config) const { res : { data } } = await fetch('/collections'); const categories = data.map((p : AppibaseCollection) => NormalizeCategory(p)) return Promise.resolve({ categories, brands: [], }) } return getSiteInfo }