UNPKG

ayakashi

Version:

The next generation web scraping framework

85 lines (84 loc) 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toCookieString = exports.getCookieUrl = exports.toRequestCookies = exports.toChromeCookies = exports.getAllCookiesFromRequestJar = void 0; const tough_cookie_1 = require("tough-cookie"); function getAllCookiesFromRequestJar(requestjar) { //@ts-ignore const memStore = requestjar._jar; const cookies = memStore.serializeSync().cookies; return cookies .map(function (cookie) { return tough_cookie_1.Cookie.fromJSON(cookie); }) .filter(function (cookie) { return cookie !== null; }); } exports.getAllCookiesFromRequestJar = getAllCookiesFromRequestJar; function toChromeCookies(cookies) { return cookies.map(function (cookie) { return { name: cookie.key, value: cookie.value, url: getCookieUrl(cookie), domain: cookie.domain || undefined, path: cookie.path || undefined, expires: requestCookieExpireToChromeExpire(cookie.expires), secure: cookie.secure, httpOnly: cookie.httpOnly }; }); } exports.toChromeCookies = toChromeCookies; function requestCookieExpireToChromeExpire(date) { if (!date || typeof date === "string") { return undefined; } else { return date.getTime(); } } function toRequestCookies(cookies) { return cookies .map(function (chromeCookie) { return { key: chromeCookie.name, value: chromeCookie.value, domain: chromeCookie.domain, path: chromeCookie.path, secure: chromeCookie.secure, httpOnly: chromeCookie.httpOnly, expires: chromeCookie.expires, sameSite: chromeCookie.sameSite ? chromeCookie.sameSite.toLowerCase() : undefined }; }) .map(function (cookie) { return tough_cookie_1.Cookie.fromJSON(cookie); }) .filter(function (cookie) { return cookie !== null; }); } exports.toRequestCookies = toRequestCookies; function getCookieUrl(cookie) { let url = ""; if (cookie.secure) { url += "https://"; } else { url += "http://"; } url += cookie.domain; url += (cookie.path || ""); return url; } exports.getCookieUrl = getCookieUrl; function toCookieString(cookie) { if (!cookie) return ""; const cookieObject = tough_cookie_1.Cookie.fromJSON(cookie); if (!cookieObject) return ""; return cookieObject.cookieString(); } exports.toCookieString = toCookieString;