import type { OperationContext, OperationOptions, } from '@commerce/api/operations' import type { ShopifyConfig, Provider } from '..' import { GetPageQuery, GetPageQueryVariables, Page } from '../../schema' import { GetPageOperation } from '../../types/page' import getPageQuery from '../../utils/queries/get-page-query' export default function getPageOperation({ commerce, }: OperationContext) { async function getPage(opts: { variables: T['variables'] config?: Partial preview?: boolean }): Promise async function getPage( opts: { variables: T['variables'] config?: Partial preview?: boolean } & OperationOptions ): Promise async function getPage({ query = getPageQuery, variables, config, preview, }: { query?: string variables: T['variables'] config?: Partial preview?: boolean }): Promise { const cfg = commerce.getConfig(config) const { data: { node: page }, } = await cfg.fetch(query) return page ? { page } : {} } return getPage }