Files
homepage/src/utils/proxy/cookie-jar.js
T
shamoon 9b1b14116b
Tests / vitest (1) (push) Has been cancelled
Docker CI / Docker Build & Push (push) Has been cancelled
Lint / Linting Checks (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Release Drafter / Auto Label PR (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled
Fix: allow explicit cookie header overwrite (#6672)
2026-05-13 08:37:33 -07:00

42 lines
1.2 KiB
JavaScript

import { Cookie, CookieJar } from "tough-cookie";
const cookieJar = new CookieJar();
export function setCookieHeader(url, params, { overwrite = false } = {}) {
// add cookie header, if we have one in the jar
const existingCookie = cookieJar.getCookieStringSync(url.toString());
if (existingCookie) {
params.headers = params.headers ?? {};
const cookieHeader = params.cookieHeader ?? "Cookie";
if (overwrite || !params.headers[cookieHeader]) {
params.headers[cookieHeader] = existingCookie;
}
}
}
export function addCookieToJar(url, headers) {
let cookieHeader = headers["set-cookie"];
if (headers instanceof Headers) {
cookieHeader = headers.get("set-cookie");
}
if (!cookieHeader || cookieHeader.length === 0) return;
let cookies = null;
if (cookieHeader instanceof Array) {
cookies = cookieHeader.map((c) => {
const cookie = Cookie.parse(c);
cookie.setMaxAge(60 * 60);
return cookie;
});
} else {
const cookie = Cookie.parse(cookieHeader);
cookie.setMaxAge(60 * 60);
cookies = [cookie];
}
for (let i = 0; i < cookies.length; i += 1) {
cookieJar.setCookieSync(cookies[i], url.toString(), { ignoreError: true });
}
}