handle empty cart, variants, options, errors

This commit is contained in:
Greg Hoskin
2021-04-30 18:35:19 -05:00
parent b83753f0b9
commit ffbcce2a9e
8 changed files with 33 additions and 75 deletions

View File

@@ -1,28 +1,19 @@
import { FetcherError } from '@commerce/utils/errors'
import { CommerceError } from '@commerce/utils/errors'
export function getError(errors: any[], status: number) {
errors = errors ?? [{ message: 'Failed to fetch Swell API' }]
return new FetcherError({ errors, status })
type SwellFetchResponse = {
error: {
message: string
code?: string
}
}
export async function getAsyncError(res: Response) {
const data = await res.json()
return getError(data.errors, res.status)
}
const handleFetchResponse = async (res: Response) => {
// if (res.ok) {
// const { data, errors } = await res.json()
// if (errors && errors.length) {
// throw getError(errors, res.status)
// }
// return data
// }
if (res) return res
throw await getAsyncError(res)
const handleFetchResponse = async (res: SwellFetchResponse) => {
if (res) {
if (res.error) {
throw new CommerceError(res.error)
}
return res
}
}
export default handleFetchResponse