UNPKG

@sugarcube/plugin-http

Version:
69 lines (56 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _puppeteerExtra = _interopRequireDefault(require("puppeteer-extra")); var _api = require("puppeteer/lib/api"); var _puppeteerExtraPluginStealth = _interopRequireDefault(require("puppeteer-extra-plugin-stealth")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _puppeteerExtra.default.use((0, _puppeteerExtraPluginStealth.default)()); var _default = async () => { const instance = await _puppeteerExtra.default.launch({ args: ["--no-sandbox", "--disabled-setuid-sandbox"] }); const dispose = () => instance.close(); const browse = async f => { const page = await instance.newPage(); await page.setViewport({ width: 1024, height: 768 }); const goto = async url => { try { try { // Not all websites will work with networkidle0. Try again with // networkidle2 in case the URL times out. Otherwise give up. await page.goto(url, { waitUntil: "networkidle0" }); } catch (ee) { if (ee instanceof _api.TimeoutError) { await page.goto(url, { waitUntil: "networkidle2" }); } else { await page.close(); throw ee; } } } catch (e) { await page.close(); throw e; } }; await f({ goto, page }); await page.close(); }; return { dispose, browse }; }; exports.default = _default;