import { OperationContext } from '@commerce/api/operations' import { Category } from '@commerce/types/site' import { KiboCommerceConfig } from '../index' import {categoryTreeQuery} from '../queries/get-categories-tree-query' import { normalizeCategory } from '../../lib/normalize' export type GetSiteInfoResult< T extends { categories: any[]; brands: any[] } = { categories: Category[] brands: any[] } > = T export default function getSiteInfoOperation({commerce}: OperationContext) { async function getSiteInfo({ query= categoryTreeQuery, variables, config, }: { query?: string variables?: any config?: Partial preview?: boolean } = {}): Promise { const cfg = commerce.getConfig(config) const { data } = await cfg.fetch(query); const categories= data.categories.items.map(normalizeCategory); return Promise.resolve({ categories: categories ?? [], brands: [], }) } return getSiteInfo }