import type { AxiosError } from "axios"; export type ServerError = { statusCode: number; error: string; message: string; }; export const parseAxiosError = (nativeError: unknown): [string, number?] => { const error = nativeError as AxiosError; if (error.response?.data && "statusCode" in (error.response.data as ServerError)) { const serverError = error.response.data as ServerError; const translatedMessage = serverError.message; if (translatedMessage !== undefined) serverError.message = translatedMessage; return [serverError.message, serverError.statusCode]; } switch (error.status) { case 404: return ["Not found.", error.status]; case 403: return ["Access is restricted.", error.status]; case 401: return ["Authorization error.", error.status]; case 500: return ["Internal Server Error.", error.status]; case 503: return ["Service unavailable.", error.status]; default: return ["Unknown server error."]; } };