mirror of
https://github.com/open-reception/appointment-booking-software.git
synced 2026-08-17 21:25:52 +02:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { logger } from "$lib/logger";
|
|
import { sequence } from "@sveltejs/kit/hooks";
|
|
import { startupHandle } from "./server-hooks/startupHandle";
|
|
import { corsHandle } from "./server-hooks/corsHandle";
|
|
import { loggingHandle } from "./server-hooks/loggingHandle";
|
|
import { rateLimitHandle } from "./server-hooks/rateLimitHandle";
|
|
import { secHeaderHandle } from "./server-hooks/secHeaderHandle";
|
|
import { apiAuthHandle } from "./server-hooks/apiAuthHandle";
|
|
import { authGuard } from "./server-hooks/authGuard";
|
|
import { i18nHandle } from "./server-hooks/i18nHandle";
|
|
import { building } from "$app/environment";
|
|
|
|
type Error = {
|
|
message?: string;
|
|
stack?: string;
|
|
};
|
|
|
|
export async function handleError({ error, event, status, message }) {
|
|
const errorLogger = logger.setContext("ERROR_HANDLER");
|
|
|
|
errorLogger.error("Unhandled error occurred", {
|
|
error: (error as Error).message,
|
|
stack: (error as Error).stack,
|
|
status,
|
|
message,
|
|
url: event.url.pathname,
|
|
method: event.request.method,
|
|
userAgent: event.request.headers.get("user-agent"),
|
|
ip: !building ? event.getClientAddress() : "server",
|
|
});
|
|
|
|
return {
|
|
message: "Internal server error occurred",
|
|
};
|
|
}
|
|
|
|
export const handle = sequence(
|
|
startupHandle,
|
|
loggingHandle,
|
|
i18nHandle,
|
|
rateLimitHandle,
|
|
corsHandle,
|
|
secHeaderHandle,
|
|
apiAuthHandle,
|
|
authGuard,
|
|
);
|