From 7966073bf86e3aeed315c070965f4cb3d8e31b2e Mon Sep 17 00:00:00 2001 From: Dmytro Stanchiev Date: Tue, 28 Apr 2026 21:34:40 -0400 Subject: [PATCH] fix(core): prefer explicit cookie source --- packages/core/src/scrapers/kijiji.ts | 1 - packages/core/src/utils/cookies.ts | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/core/src/scrapers/kijiji.ts b/packages/core/src/scrapers/kijiji.ts index 2e217c3..775c264 100644 --- a/packages/core/src/scrapers/kijiji.ts +++ b/packages/core/src/scrapers/kijiji.ts @@ -28,7 +28,6 @@ const KIJIJI_COOKIE_CONFIG: CookieConfig = { name: "Kijiji", domain: ".kijiji.ca", envVar: "KIJIJI_COOKIE", - filePath: "./cookies/kijiji.json", }; // ----------------------------- Types ----------------------------- diff --git a/packages/core/src/utils/cookies.ts b/packages/core/src/utils/cookies.ts index 2579365..f75a32d 100644 --- a/packages/core/src/utils/cookies.ts +++ b/packages/core/src/utils/cookies.ts @@ -41,9 +41,9 @@ export function parseCookieString( .split(";") .map((pair) => pair.trim()) .filter((pair) => pair.includes("=")) - .map((pair) => { + .map((pair): Cookie | null => { const [name, ...valueParts] = pair.split("="); - const trimmedName = name.trim(); + const trimmedName = name?.trim(); const trimmedValue = valueParts.join("=").trim(); 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 { +export async function ensureCookies( + config: CookieConfig, + cookiesSource?: string, +): Promise { + // 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 cookies = parseCookieString(envValue ?? "", config.domain);