mirror of
https://github.com/gethomepage/homepage.git
synced 2026-09-27 14:31:17 -07:00
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
42 lines
1.2 KiB
JavaScript
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 });
|
|
}
|
|
}
|