import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'; import { getCommerceApi as commerceApi } from '@commerce/api'; import createApiFetch from './utils/create-api-fetch'; import getAllPages from './operations/get-all-pages'; import getPage from './operations/get-page'; import getSiteInfo from './operations/get-site-info'; import getCustomerWishlist from './operations/get-customer-wishlist'; import getAllProductPaths from './operations/get-all-product-paths'; import getAllProducts from './operations/get-all-products'; import getProduct from './operations/get-product'; import getAllTaxons from './operations/get-all-taxons'; import getProducts from './operations/get-products'; export interface SpreeApiConfig extends CommerceAPIConfig {} const config: SpreeApiConfig = { commerceUrl: '', apiToken: '', cartCookie: '', customerCookie: '', cartCookieMaxAge: 2592000, fetch: createApiFetch(() => getCommerceApi().getConfig()) }; const operations = { getAllPages, getPage, getSiteInfo, getCustomerWishlist, getAllProductPaths, getAllProducts, getProduct, getAllTaxons, getProducts }; export const provider = { config, operations }; export type SpreeApiProvider = typeof provider; export type SpreeApi

= CommerceAPI

; export function getCommerceApi

( customProvider: P = provider as any ): SpreeApi

{ return commerceApi(customProvider); }