import { AxiosError, AxiosResponse } from 'axios'; export function parseAxiosErrorMessage(e: AxiosError): string { let res; if (e.response as AxiosResponse) { const responseData = (e as any).response.data; const responseMessage = responseData.message; const responseError = responseData.error; res = responseError?.message ?? responseMessage ?? responseError ?? responseData; } else if (e.request) { res = e.request; } else { res = e.message; } // some services return an array of strings as an error message // as a result of the validation if (Array.isArray(res) && res.every(i => typeof i === 'string')) { return res.join('; '); } return typeof res === 'string' ? res : e.message; }