UNPKG

universal-cookie-express

Version:
28 lines (25 loc) 991 B
import Cookies from 'universal-cookie'; // @ts-ignore function universalCookieMiddleware() { return function (req, res, next) { req.universalCookies = new Cookies(req.headers.cookie || ''); req.universalCookies.addChangeListener((change) => { if (!res.cookie || res.headersSent) { return; } if (change.value === undefined) { res.clearCookie(change.name, change.options); } else { const expressOpt = Object.assign({}, change.options); if (expressOpt.maxAge && change.options && change.options.maxAge) { // the standard for maxAge is seconds but express uses milliseconds expressOpt.maxAge = change.options.maxAge * 1000; } res.cookie(change.name, change.value, expressOpt); } }); next(); }; } export { universalCookieMiddleware as default };