import Cookies from 'js-cookie' import { SHOPIFY_CHECKOUT_ID_COOKIE, SHOPIFY_CHECKOUT_URL_COOKIE, SHOPIFY_COOKIE_EXPIRE, } from '../const' import checkoutCreateMutation from './mutations/checkout-create' import { CheckoutCreatePayload, CheckoutLineItemInput, Mutation, MutationCheckoutCreateArgs, } from '../schema' import { FetcherOptions } from '@commerce/utils/types' export const checkoutCreate = async ( fetch: (options: FetcherOptions) => Promise, lineItems: CheckoutLineItemInput[] ): Promise => { const { checkoutCreate } = await fetch({ query: checkoutCreateMutation, variables: { input: { lineItems }, }, }) const checkout = checkoutCreate?.checkout if (checkout) { const checkoutId = checkout?.id const options = { expires: SHOPIFY_COOKIE_EXPIRE, } Cookies.set(SHOPIFY_CHECKOUT_ID_COOKIE, checkoutId, options) if (checkout?.webUrl) { Cookies.set(SHOPIFY_CHECKOUT_URL_COOKIE, checkout.webUrl, options) } } return checkoutCreate! } export default checkoutCreate