/*! * @license * Copyright Squiz Australia Pty Ltd. All Rights Reserved. */ /** * Check if error is an AxiosError * @param error - The error to check * @returns true if it's an AxiosError, false otherwise */ export function isAxiosError(error: any): boolean { return Boolean(error && error.isAxiosError === true); } /** * Handle errors from API calls * @param error - The error to handle * @returns A formatted Error object */ export function handleError(error: any): Error { const { response } = error; const errorMessage = error.message; const newError = new Error(errorMessage || 'An error has occurred'); if (isAxiosError(error)) { if (response?.data?.message) { newError.message = `Unexpected response code ${response.status}. ${response.data.message}`; } else { newError.message = `${errorMessage} (code: ${response?.status || 'unknown'})`; } } newError.stack = error.stack; return newError; }