fets
Version:
TypeScript HTTP Framework focusing on e2e type-safety, easy setup, performance & great developer experience
28 lines (27 loc) • 1.08 kB
JavaScript
import { parse } from '@whatwg-node/cookie-store';
import { Headers } from '@whatwg-node/fetch';
export function useClientCookieStore(cookieStore) {
return {
async onRequestInit({ requestInit }) {
requestInit.headers = new Headers(requestInit.headers);
let cookieHeader = requestInit.headers.get('cookie') || '';
if (cookieHeader) {
cookieHeader += '; ';
}
const cookies = await cookieStore.getAll();
cookieHeader += cookies.map(cookie => `${cookie.name}=${cookie.value}`).join('; ');
requestInit.headers.set('cookie', cookieHeader);
},
onResponse({ response }) {
const setCookies = response.headers.getSetCookie?.();
if (setCookies) {
for (const setCookie of setCookies) {
const cookieMap = parse(setCookie);
for (const [, cookie] of cookieMap) {
cookieStore.set(cookie);
}
}
}
},
};
}