21 lines
573 B
TypeScript
21 lines
573 B
TypeScript
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))
|
|
} |