Move handle into its own file

This commit is contained in:
Karl Ludwig Weise
2025-07-28 21:30:37 +02:00
parent 19a7bf04a8
commit a033229181
2 changed files with 23 additions and 14 deletions
+2 -14
View File
@@ -1,22 +1,10 @@
import { logger } from "$lib/logger";
import type { Handle } from "@sveltejs/kit";
import { sequence } from "@sveltejs/kit/hooks";
import { paraglideMiddleware } from "./i18n/server";
import { corsHandle } from "./server-hooks/corsHandle";
import { loggingHandle } from "./server-hooks/loggingHandle";
import { rateLimitHandle } from "./server-hooks/rateLimitHandle";
import { secHeaderHandle } from "./server-hooks/secHeaderHandle";
const i18nHandler: Handle = ({ event, resolve }) => {
return paraglideMiddleware(event.request, ({ request: localizedRequest, locale }) => {
event.request = localizedRequest;
return resolve(event, {
transformPageChunk: ({ html }) => {
return html.replace("%lang%", locale);
}
});
});
};
import { i18nHandle } from "./server-hooks/i18nHandle";
export async function handleError({ error, event, status, message }) {
const errorLogger = logger.setContext("ERROR_HANDLER");
@@ -39,7 +27,7 @@ export async function handleError({ error, event, status, message }) {
export const handle = sequence(
loggingHandle,
i18nHandler,
i18nHandle,
rateLimitHandle,
corsHandle,
secHeaderHandle
+21
View File
@@ -0,0 +1,21 @@
import type { Handle } from "@sveltejs/kit";
import { paraglideMiddleware } from "$i18n/server";
/**
* SvelteKit server hook that handles i18n localization
*
* @param {Object} params - Hook parameters
* @param {import('@sveltejs/kit').RequestEvent} params.event - The request event
* @param {Function} params.resolve - Function to resolve the request
* @returns {Promise<Response>} The response with applied headers and rate limiting
*/
export const i18nHandle: Handle = ({ event, resolve }) => {
return paraglideMiddleware(event.request, ({ request: localizedRequest, locale }) => {
event.request = localizedRequest;
return resolve(event, {
transformPageChunk: ({ html }) => {
return html.replace("%lang%", locale);
}
});
});
};