UNPKG

svelte-kit-cookie-session-patch

Version:

⚒️ Encrypted 'stateless' cookie sessions for SvelteKit

31 lines (30 loc) 1.32 kB
import { initializeSession } from "./initialize.js"; export function handleSession(options, passedHandle = async ({ request, resolve, }) => resolve(request)) { return async function handle({ request, resolve }) { // We type it as any here to avoid typescript complaining about set-cookie; const session = initializeSession(request.headers, options); request.locals.session = session; const response = await passedHandle({ request, resolve }); if (!session["set-cookie"] || !(response === null || response === void 0 ? void 0 : response.headers)) { return response; } if (response.headers["set-cookie"]) { if (typeof response.headers["set-cookie"] === "string") { response.headers["set-cookie"] = [ response.headers["set-cookie"], session["set-cookie"], ]; } else if (Array.isArray(response.headers["set-cookie"])) { response.headers["set-cookie"] = [ ...response.headers["set-cookie"], session["set-cookie"], ]; } } else { response.headers["set-cookie"] = [session["set-cookie"]]; } return response; }; }