UNPKG

@capawesome/cli

Version:

The Capawesome Cloud Command Line Interface (CLI) to manage Live Updates and more.

53 lines (52 loc) 1.97 kB
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; };