Improve error handling

This commit is contained in:
cond0r 2022-11-22 10:32:33 +02:00
parent 90aa798891
commit f4866769d4
2 changed files with 12 additions and 5 deletions

View File

@ -42,7 +42,9 @@ export class CommerceNetworkError extends Error {
}
export const normalizeZodIssues = (issues: ZodError['issues']) =>
issues.map(({ path, message }) => `${message} at "${path.join('.')}" field`)
issues.map(({ path, message }) =>
path.length ? `${message} at "${path.join('.')}" field` : message
)
export const getOperationError = (operation: string, error: unknown) => {
if (error instanceof ZodError) {

View File

@ -2,7 +2,6 @@ import type { GraphQLFetcher } from '@vercel/commerce/api'
import { API_URL } from '../../const'
import { getError } from '../../utils/handle-fetch-response'
import { getCommerceApi } from '..'
import { getToken } from '../../utils/index'
const fetchGraphqlApi: GraphQLFetcher = async (
@ -10,7 +9,6 @@ const fetchGraphqlApi: GraphQLFetcher = async (
{ variables } = {},
headers?: HeadersInit
) => {
const config = getCommerceApi().getConfig()
const token = getToken()
const res = await fetch(API_URL!, {
@ -28,10 +26,17 @@ const fetchGraphqlApi: GraphQLFetcher = async (
}),
})
const { data, errors, status } = await res.json()
const { data, errors, message, type, status } = await res.json()
if (errors) {
throw getError(errors, status)
throw getError(
errors || [
{
message: `${type ? `${type}, ` : ''}${message}`,
},
],
status || res.status
)
}
return { data, res }