import { RequestCookies } from '@edge-runtime/cookies';
import { jwtVerify } from 'jose';

export const config = {
  matcher: '/',
};

export default async function middleware(request) {
	try {
		const cookies = new RequestCookies(request.headers)
		const sessionCookie = cookies.get('session');

		if (!sessionCookie) return auth(request)

		await jwtVerify(
			sessionCookie.value,
			new TextEncoder().encode(process.env.JWT_SIGNING_KEY)
		);

	} catch (e) {
		console.error(e)
		return auth(request)
	}
}

function auth(request) {
	return Response.redirect(new URL('/auth', request.url), 303);
}