mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-07 10:19:04 +02:00
23 lines
899 B
TypeScript
23 lines
899 B
TypeScript
import type { HandleClientError } from '@sveltejs/kit/hooks';
|
|
import { isAxiosError } from 'axios';
|
|
import { getAxiosErrorMessage, getAxiosErrorRequestId } from '#lib/utils/error-util.ts';
|
|
|
|
export const handleError: HandleClientError = ({ kind, error }) => {
|
|
// Preserve safe application and framework errors, including their status codes
|
|
if (kind !== 'unknown') return error;
|
|
|
|
// Retain API error messages and request IDs for failed backend requests
|
|
if (isAxiosError(error)) {
|
|
const message = getAxiosErrorMessage(error);
|
|
const status = error.response?.status || 500;
|
|
console.error(
|
|
`Axios error: ${error.request?.path ?? 'unknown path'} - ${getAxiosErrorMessage(error, error.message)}`,
|
|
{ requestId: getAxiosErrorRequestId(error) }
|
|
);
|
|
return { message, status };
|
|
}
|
|
|
|
// Keep SvelteKit's generic response for unexpected errors while logging the cause
|
|
console.error(error);
|
|
};
|