try to do better

This commit is contained in:
arrelin
2026-01-29 15:17:54 +03:00
parent f00ddc7d10
commit 24f04a7e82
60 changed files with 5335 additions and 1254 deletions

View File

@@ -0,0 +1,53 @@
import { AxiosError } from 'axios';
import { ApiError, AppError } from '../types/errors';
import { showToast } from './toast';
export function handleApiError(error: unknown): never {
if (error instanceof AppError) {
throw error;
}
if (error instanceof AxiosError) {
const status = error.response?.status;
const message = error.response?.data?.message || error.message;
const code = error.response?.data?.code;
throw new AppError(message, status, code);
}
if (error instanceof Error) {
throw new AppError(error.message);
}
throw new AppError('Unknown error occurred');
}
export function showErrorToast(error: unknown): void {
let message = 'An unexpected error occurred';
if (error instanceof AppError) {
message = error.message;
} else if (error instanceof AxiosError) {
message = error.response?.data?.message || error.message;
} else if (error instanceof Error) {
message = error.message;
}
showToast.error(message);
}
export function getErrorMessage(error: unknown): string {
if (error instanceof AppError) {
return error.message;
}
if (error instanceof AxiosError) {
return error.response?.data?.message || error.message;
}
if (error instanceof Error) {
return error.message;
}
return 'An unexpected error occurred';
}