UNPKG

next-session

Version:

Simple promise-based session for Next.js

43 lines (35 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hash = hash; exports.commitHeader = commitHeader; var _cookie = _interopRequireDefault(require("cookie")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function hash(sess) { return JSON.stringify(sess, (key, val) => key === "cookie" ? undefined : val); } function commitHeader(res, name, { cookie, id }, encodeFn) { if (res.headersSent) return; const cookieStr = _cookie.default.serialize(name, encodeFn ? encodeFn(id) : id, { path: cookie.path, httpOnly: cookie.httpOnly, expires: cookie.expires, domain: cookie.domain, sameSite: cookie.sameSite, secure: cookie.secure }); const prevSetCookie = res.getHeader("set-cookie"); if (prevSetCookie) { if (Array.isArray(prevSetCookie)) { res.setHeader("set-cookie", [...prevSetCookie, cookieStr]); } else { res.setHeader("set-cookie", [prevSetCookie, cookieStr]); } } else { res.setHeader("set-cookie", cookieStr); } }