fix(core): prefer explicit cookie source
This commit is contained in:
@@ -28,7 +28,6 @@ const KIJIJI_COOKIE_CONFIG: CookieConfig = {
|
||||
name: "Kijiji",
|
||||
domain: ".kijiji.ca",
|
||||
envVar: "KIJIJI_COOKIE",
|
||||
filePath: "./cookies/kijiji.json",
|
||||
};
|
||||
|
||||
// ----------------------------- Types -----------------------------
|
||||
|
||||
@@ -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<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 cookies = parseCookieString(envValue ?? "", config.domain);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user