ayakashi
Version:
The next generation web scraping framework
85 lines (84 loc) • 2.62 kB
JavaScript
;
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;