fix(core): prefer explicit cookie source

This commit is contained in:
2026-04-28 21:34:40 -04:00
parent df2635d92f
commit 7966073bf8
2 changed files with 15 additions and 5 deletions

View File

@@ -28,7 +28,6 @@ const KIJIJI_COOKIE_CONFIG: CookieConfig = {
name: "Kijiji", name: "Kijiji",
domain: ".kijiji.ca", domain: ".kijiji.ca",
envVar: "KIJIJI_COOKIE", envVar: "KIJIJI_COOKIE",
filePath: "./cookies/kijiji.json",
}; };
// ----------------------------- Types ----------------------------- // ----------------------------- Types -----------------------------

View File

@@ -41,9 +41,9 @@ export function parseCookieString(
.split(";") .split(";")
.map((pair) => pair.trim()) .map((pair) => pair.trim())
.filter((pair) => pair.includes("=")) .filter((pair) => pair.includes("="))
.map((pair) => { .map((pair): Cookie | null => {
const [name, ...valueParts] = pair.split("="); const [name, ...valueParts] = pair.split("=");
const trimmedName = name.trim(); const trimmedName = name?.trim();
const trimmedValue = valueParts.join("=").trim(); const trimmedValue = valueParts.join("=").trim();
if (!trimmedName || !trimmedValue) { if (!trimmedName || !trimmedValue) {
@@ -98,9 +98,20 @@ export function formatCookiesForHeader(
} }
/** /**
* Load cookies from the configured environment variable * Load cookies from the configured environment variable or explicit cookie string
*/ */
export async function ensureCookies(config: CookieConfig): Promise<Cookie[]> { export async function ensureCookies(
config: CookieConfig,
cookiesSource?: string,
): Promise<Cookie[]> {
// Explicit cookie string takes priority
if (cookiesSource) {
const cookies = parseCookieString(cookiesSource, config.domain);
if (cookies.length > 0) {
return cookies;
}
}
const envValue = process.env[config.envVar]; const envValue = process.env[config.envVar];
const cookies = parseCookieString(envValue ?? "", config.domain); const cookies = parseCookieString(envValue ?? "", config.domain);