UNPKG

@whatwg-node/server-plugin-cookies

Version:
29 lines (28 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCookies = useCookies; const cookie_store_1 = require("@whatwg-node/cookie-store"); function useCookies() { const cookieStringsByRequest = new WeakMap(); return { onRequest({ request }) { const cookieStrings = []; request.cookieStore = new cookie_store_1.CookieStore(request.headers.get('cookie') ?? ''); request.cookieStore.onchange = function ({ changed, deleted }) { changed.forEach(cookie => { cookieStrings.push((0, cookie_store_1.getCookieString)(cookie)); }); deleted.forEach(cookie => { cookieStrings.push((0, cookie_store_1.getCookieString)({ ...cookie, value: undefined })); }); }; cookieStringsByRequest.set(request, cookieStrings); }, onResponse({ request, response }) { const cookieStrings = cookieStringsByRequest.get(request); cookieStrings?.forEach(cookieString => { response.headers.append('Set-Cookie', cookieString); }); }, }; }