Loan Laux 23e0d57cf5
Move API to new Node architecture
Signed-off-by: Loan Laux <loan@outgrow.io>
2021-07-06 15:43:38 +03:00

42 lines
1.1 KiB
TypeScript

import { Provider, ReactionCommerceConfig } from '../'
import { GetCollectionsQuery } from '../../schema'
import getCollectionsQuery from '../../utils/queries/get-all-collections-query'
import { OperationContext } from '@commerce/api/operations'
import { Category } from '@commerce/types/site'
import getCategories from '../../utils/get-categories'
import getVendors from '../../utils/get-vendors'
export type GetSiteInfoResult<
T extends { categories: any[]; brands: any[] } = {
categories: Category[]
brands: any[]
}
> = T
export default function getSiteInfoOperation({
commerce,
}: OperationContext<Provider>) {
async function getSiteInfo({
query = getCollectionsQuery,
variables,
config: cfg,
}: {
query?: string
variables?: any
config?: Partial<ReactionCommerceConfig>
preview?: boolean
} = {}): Promise<GetSiteInfoResult> {
const config = commerce.getConfig(cfg)
const categories = await getCategories(config)
const brands = await getVendors(config)
return {
categories: categories ?? [],
brands,
}
}
return getSiteInfo
}