Files
fotospiel-app/resources/js/admin/lib/apiError.ts
Codex Agent 79b209de9a Limit-Status im Upload-Flow anzeigen (Warnbanner + Sperrzustände).
Upload-Fehlercodes auswerten und freundliche Dialoge zeigen.
2025-11-01 19:50:17 +01:00

36 lines
790 B
TypeScript

export class ApiError extends Error {
constructor(
message: string,
public readonly status?: number,
public readonly code?: string,
public readonly meta?: Record<string, unknown>,
) {
super(message);
this.name = 'ApiError';
}
}
export function isApiError(value: unknown): value is ApiError {
return value instanceof ApiError;
}
export function getApiErrorMessage(error: unknown, fallback: string): string {
if (isApiError(error)) {
if (error.message) {
return error.message;
}
if (error.status && error.status >= 500) {
return 'Der Server hat nicht reagiert. Bitte versuche es später erneut.';
}
return fallback;
}
if (error instanceof Error && error.message) {
return error.message;
}
return fallback;
}