fix(core): prefer explicit cookie source
This commit is contained in:
@@ -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 -----------------------------
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user