UNPKG

@qavajs/steps-lighthouse

Version:

qavajs steps to perform lighthouse audit

44 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.playwrightAdapter = playwrightAdapter; exports.wdioAdapter = wdioAdapter; const node_fs_1 = require("node:fs"); function playwrightAdapter(page) { const protocol = JSON.parse((0, node_fs_1.readFileSync)('node_modules/devtools-protocol/json/browser_protocol.json', 'utf-8')); const events = protocol.domains.reduce((eventMap, domain) => { if (!domain.events) return eventMap; const types = domain.events.map((event) => `${domain.domain}.${event.name}`); return [...eventMap, ...types]; }, []); page.target = function () { return { async createCDPSession() { const context = page.context(); const cdp = await context.newCDPSession.apply(context, [page]); cdp.id = function () { return cdp._guid; }; cdp.connection = function () { return cdp._connection; }; for (const eventName of events) { cdp.on(eventName, (...event) => { cdp.emit('*', eventName, ...event); }); } return cdp; } }; }; return page; } async function wdioAdapter(browser) { if (!browser.getPuppeteer) { throw new Error('Protocol does not support puppeteer connection.\nTry to run via bidi driver'); } const puppeteer = await browser.getPuppeteer(); const pages = await puppeteer.pages(); return pages.find((p) => p.url() !== 'data:,'); } //# sourceMappingURL=adapter.js.map