All files / utils parseErrorResponse.js

7.14% Statements 1/14
0% Branches 0/11
0% Functions 0/2
7.69% Lines 1/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3130x                                                            
const parseErrorResponse = async (responseObj) => {
  let errorResp = { message: 'something went wrong' };
  if (!responseObj) {
    return errorResp;
  }
  const code = responseObj?.status;
 
  // Assume text if we can't find content type
  const contentType = [...(responseObj?.headers ?? [])]?.find(header => header[0]?.toLowerCase() === 'content-type')?.[1] ?? 'application/text';
 
  if (contentType.includes('json')) {
    const parsed = await responseObj.json();
 
    errorResp = {
      code,
      ...parsed,
      message: parsed?.message || parsed?.errors?.[0]?.message || 'something went wrong'
    };
  } else {
    try {
      errorResp = { code, message: await responseObj.text() };
    } catch {
      errorResp = { code, message: 'something went wrong' };
    }
  }
 
  return errorResp;
};
 
export default parseErrorResponse;