import { serialize, CookieSerializeOptions } from 'cookie';
import { NextApiResponse } from 'next'
 
/**
 * This sets `cookie` using the `res` object
 */
export const setCookie = (
  res: NextApiResponse,
  name: string,
  value: unknown,
  options: CookieSerializeOptions = {}
) => {
  const stringValue =
    typeof value === 'object' ? 'j:' + JSON.stringify(value) : String(value)
 
  if (typeof options.maxAge === 'number') {
    options.expires = new Date(Date.now() + options.maxAge * 1000)
  }
 
  res.setHeader('Set-Cookie', serialize(name, stringValue, options))
}