mirror of
https://github.com/vercel/commerce.git
synced 2025-07-27 04:01:23 +00:00
Moved handler to each hook
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Cart } from '@commerce/types'
|
||||
import { CommerceError, ValidationError } from '@commerce/utils/errors'
|
||||
import { normalizeCart } from '@framework/lib/normalize'
|
||||
import { normalizeCart } from '@framework/utils/normalize'
|
||||
import { Checkout, Maybe, UserError } from '@framework/schema'
|
||||
|
||||
const checkoutToCart = (checkoutResponse?: {
|
||||
|
30
framework/shopify/cart/utils/fetcher.ts
Normal file
30
framework/shopify/cart/utils/fetcher.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { HookFetcherFn } from '@commerce/utils/types'
|
||||
import { Cart } from '@commerce/types'
|
||||
import { checkoutCreate, checkoutToCart } from '.'
|
||||
import { FetchCartInput } from '@commerce/cart/use-cart'
|
||||
|
||||
const fetcher: HookFetcherFn<Cart | null, FetchCartInput> = async ({
|
||||
options,
|
||||
input: { cartId },
|
||||
fetch,
|
||||
}) => {
|
||||
let checkout
|
||||
|
||||
if (cartId) {
|
||||
const data = await fetch({
|
||||
...options,
|
||||
variables: {
|
||||
cartId,
|
||||
},
|
||||
})
|
||||
checkout = data?.node
|
||||
}
|
||||
|
||||
if (checkout?.completedAt || !cartId) {
|
||||
checkout = await checkoutCreate(fetch)
|
||||
}
|
||||
|
||||
return checkoutToCart({ checkout })
|
||||
}
|
||||
|
||||
export default fetcher
|
@@ -1,2 +1,3 @@
|
||||
export { default as checkoutToCart } from './checkout-to-cart'
|
||||
export { default as checkoutCreate } from './checkout-create'
|
||||
export { default as fetcher } from './fetcher'
|
||||
|
Reference in New Issue
Block a user