UNPKG

ayakashi

Version:

The next generation web scraping framework

60 lines (59 loc) 2.78 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateCookieJar = exports.getCookieJar = void 0; const core_1 = require("@ayakashi/request/core"); const cookieHelpers_1 = require("../utils/cookieHelpers"); const client_1 = require("../bridge/client"); //tslint:disable interface-name variable-name function getCookieJar(port, options) { return __awaiter(this, void 0, void 0, function* () { if (options.persistentSession) { const bridgeClient = client_1.getBridgeClient(port); //create a new memory jar and add any cookies we have on the persistent store to it const memJar = core_1.jar(); //@ts-ignore memJar._jar.rejectPublicSuffixes = false; //@ts-ignore memJar._jar.looseMode = true; const cookies = yield bridgeClient.getCookieJar(); return new Promise(function (resolve, reject) { try { cookies.forEach(function (cookie) { memJar.setCookie(cookieHelpers_1.toCookieString(cookie), cookieHelpers_1.getCookieUrl(cookie), { now: cookie.creation ? new Date(cookie.creation) : new Date(), ignoreError: true }); }); resolve({ jar: memJar, cookies: cookies }); } catch (err) { reject(err); } }); } else { //just return a new memory jar return { jar: core_1.jar(), cookies: [] }; } }); } exports.getCookieJar = getCookieJar; function updateCookieJar(port, memJar, options) { return __awaiter(this, void 0, void 0, function* () { if (!options.persistentSession) return; const bridgeClient = client_1.getBridgeClient(port); const cookies = cookieHelpers_1.getAllCookiesFromRequestJar(memJar); yield bridgeClient.updateCookieJar(cookies); }); } exports.updateCookieJar = updateCookieJar;