b611207d25
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
958 B
TypeScript
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);
|
|
};
|