import type { IronSessionOptions } from 'iron-session'; import { withIronSessionApiRoute, withIronSessionSsr } from 'iron-session/next'; import { GetServerSidePropsContext, GetServerSidePropsResult, NextApiHandler } from 'next'; import { UserModel } from './dto/models/user.dto'; export const sessionOptions: IronSessionOptions = { password: process.env.SECRET_COOKIE_PASSWORD as string, cookieName: 'dbgpt-portal', cookieOptions: { secure: process.env.NODE_ENV === 'production', }, }; export function withSessionRoute(handler: NextApiHandler) { return withIronSessionApiRoute(handler, sessionOptions); } // Theses types are compatible with InferGetStaticPropsType https://nextjs.org/docs/basic-features/data-fetching#typescript-use-getstaticprops export function withSessionSsr
( handler: (context: GetServerSidePropsContext) => GetServerSidePropsResult
| Promise