Files
buildfor_life_budget/src/hooks.server.ts
T
2026-04-16 15:17:38 +07:00

35 lines
958 B
TypeScript

import { redirect, type Handle } from '@sveltejs/kit';
import { validateSession, setSessionCookie } from '$lib/server/auth/index.js';
import { startScheduler } from '$lib/server/recurring-bills/scheduler.js';
startScheduler();
export const handle: Handle = async ({ event, resolve }) => {
// Redirect implicit /favicon.ico requests to our SVG to avoid 404 noise
if (event.url.pathname === '/favicon.ico') {
redirect(302, '/favicon.svg');
}
const token = event.cookies.get('session');
if (token) {
const { session, user } = await validateSession(token);
if (session) {
event.locals.user = user;
event.locals.session = session;
if (session.fresh) {
setSessionCookie(event, token, session.expiresAt);
}
} else {
event.locals.user = null;
event.locals.session = null;
event.cookies.delete('session', { path: '/' });
}
} else {
event.locals.user = null;
event.locals.session = null;
}
return resolve(event);
};