Something went wrong. Try again.
Attic is a cozy space with lofty ambitions. attic.social
Something went wrong. Try again.
1.5 kB · 51 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import { dev } from "$app/environment";import { acceptsLanguages } from "$lib/negotiation";import { restoreSession } from "$lib/server/session";import { isAuthEvent } from "$lib/types";import { error, type Handle, redirect } from "@sveltejs/kit";import { sequence } from "@sveltejs/kit/hooks";
/** * {@link https://svelte.dev/docs/cli/devtools-json} */const devHandle: Handle = ({ event, resolve }) => { const path = "/.well-known/appspecific/com.chrome.devtools.json"; if (dev && event.url.pathname === path) { return new Response(null, { status: 404 }); } return resolve(event);};
export const defaultHandle: Handle = async ({ event, resolve }) => { if (isAuthEvent(event) === false) { error(500); }
const languages = acceptsLanguages(event.request); event.locals.locale = languages[0] === "*" ? undefined : languages[0];
// [TODO] necessary? // if ( // event.url.searchParams.has("session") || // event.request.headers.has("x-session") || // event.request.headers.get("sec-fetch-mode") === "navigate" || // // event.request.headers.get("sec-fetch-dest") === "empty" // ) { await restoreSession(event); // }
if ( event.route.id?.startsWith("/(protected)/") && event.locals.user === undefined ) { redirect(307, "/"); }
return resolve(event, { filterSerializedResponseHeaders: (name: string, _value: string) => { return ["content-type"].includes(name.toLowerCase()); }, });};
export const handle: Handle = sequence(devHandle, defaultHandle);