FBLA25/src/hooks.server.ts
2025-01-15 18:20:27 -06:00

31 lines
681 B
TypeScript

import jwt from 'jsonwebtoken';
import * as dotenv from 'dotenv';
dotenv.config({ path: '.env' });
export const handle = async ({ event, resolve }) => {
const theme = event.cookies.get('theme');
const JWT = event.cookies.get('jwt');
if (process.env.JWT_SECRET === undefined) {
throw new Error('JWT_SECRET not defined');
}
if (JWT) {
try {
const decoded = jwt.verify(JWT, process.env.JWT_SECRET);
} catch (err) {
event.cookies.delete('jwt', { path: '/' });
}
}
if (!theme) {
return await resolve(event);
}
return await resolve(event, {
transformPageChunk: ({ html }) => {
return html.replace('data-theme=""', `data-theme="${theme}"`);
}
});
};