import { cookies } from 'next/headers' import { redirect } from 'next/navigation' import { FrameworkAdapter, CookieOptions } from '../types' export class NextJSFrameworkAdapter implements FrameworkAdapter { async setCookie( name: string, value: string, options?: CookieOptions, ): Promise { const cookieStore = await cookies() cookieStore.set(name, value, { httpOnly: options?.httpOnly, secure: options?.secure, sameSite: options?.sameSite, maxAge: options?.maxAge, path: options?.path, }) } async getCookie(name: string): Promise { const cookieStore = await cookies() const cookie = cookieStore.get(name) return cookie?.value } async deleteCookie(name: string): Promise { const cookieStore = await cookies() cookieStore.delete(name) } async redirect(url: string): Promise { redirect(url) } }