frontAnswerer/lib/utils/parse-error.ts
2025-02-24 01:38:33 +03:00

39 lines
1015 B
TypeScript

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."];
}
};