@capawesome/cli
Version:
The Capawesome Cloud Command Line Interface (CLI) to manage Live Updates and more.
53 lines (52 loc) • 1.97 kB
JavaScript
import { AxiosError } from 'axios';
import { ZodError } from 'zod';
export const getMessageFromUnknownError = (error) => {
let message = 'An unknown error has occurred.';
if (error instanceof AxiosError) {
message = getErrorMessageFromAxiosError(error);
}
else if (error instanceof ZodError) {
message = getErrorMessageFromZodError(error);
}
else if (error instanceof Error) {
message = error.message;
}
return message;
};
const getErrorMessageFromAxiosError = (error) => {
let message = 'An unknown network error has occurred.';
if (!error.response &&
(error.code === 'ENOTFOUND' ||
error.code === 'ECONNREFUSED' ||
error.code === 'ENETUNREACH' ||
error.message.includes('Network Error'))) {
message = 'No connection could be established. Please check your internet connection and try again.';
}
else if (error.response?.status === 401) {
message = 'Your token is no longer valid. Please sign in again.';
}
else if (error.response?.status === 500) {
message = 'An internal server error has occurred. Please try again later.';
}
else if (error.response?.status === 503) {
message = 'The service is currently unavailable. Please try again later.';
}
else if (error.response?.data?.message) {
message = error.response?.data?.message;
}
else if (error.response?.data?.error?.issues[0]?.message) {
message = (error.response?.data).error.issues[0].message;
}
else if (error.response?.data && typeof error.response?.data === 'string') {
message = error.response.data;
}
return message;
};
const getErrorMessageFromZodError = (error) => {
let message = 'An unknown validation error has occurred. Please check your input.';
const firstIssue = error.issues[0];
if (firstIssue) {
message = firstIssue.message;
}
return message;
};