UNPKG

@accounter/modern-poalim-scraper

Version:
58 lines 2 kB
import { v4 as uuidv4 } from 'uuid'; export async function fetchPostWithinPage(page, url, data, extraHeaders = {}) { return page.evaluate((url, data, extraHeaders) => { return new Promise((resolve, reject) => { fetch(url, { method: 'POST', body: JSON.stringify(data), credentials: 'include', headers: new Headers(Object.assign({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', }, extraHeaders)), }) .then(result => { if (result.status === 204) { // No content response resolve(null); } else { resolve(result.json()); } }) .catch(e => { reject(e); }); }); }, url, data, extraHeaders); } export async function fetchGetWithinPage(page, url) { return page.evaluate(url => { return new Promise((resolve, reject) => { fetch(url, { credentials: 'include' }) .then(result => { if (result.status === 204) { resolve(null); } else { resolve(result.json()); } }) .catch(e => { reject(e); }); }); }, url); } export async function fetchPoalimXSRFWithinPage(page, url, pageUuid) { const cookies = await page.cookies(); const XSRFCookie = cookies.find(cookie => cookie.name === 'XSRF-TOKEN'); const headers = {}; if (XSRFCookie != null) { headers['X-XSRF-TOKEN'] = XSRFCookie.value; } headers['pageUuid'] = pageUuid; headers['uuid'] = uuidv4(); headers['Content-Type'] = 'application/json;charset=UTF-8'; return fetchPostWithinPage(page, url, {}, headers); } //# sourceMappingURL=fetch.js.map