svelte-kit-cookie-session-patch
Version:
⚒️ Encrypted 'stateless' cookie sessions for SvelteKit
35 lines (34 loc) • 1.34 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.sessionMiddleware = void 0;
const initialize_js_1 = require("./initialize.js");
function sessionMiddleware(options) {
return (req, res, next) => {
const session = initialize_js_1.initializeSession({ cookie: req.headers.cookie }, options);
//@ts-ignore
req.session = session;
const setSessionHeaders = () => {
//@ts-ignore This can exist
const sessionCookie = req.session["set-cookie"];
if (sessionCookie && sessionCookie.length > 0) {
const existingSetCookie = res.getHeader("Set-Cookie");
if (!existingSetCookie) {
res.setHeader("Set-Cookie", [sessionCookie]);
}
else if (typeof existingSetCookie === "string") {
res.setHeader("Set-Cookie", [existingSetCookie, sessionCookie]);
}
else {
res.setHeader("Set-Cookie", [...existingSetCookie, sessionCookie]);
}
}
};
const end = res.end;
res.end = function (...args) {
setSessionHeaders();
return end.apply(this, args);
};
return next();
};
}
exports.sessionMiddleware = sessionMiddleware;
;