@qavajs/steps-lighthouse
Version:
qavajs steps to perform lighthouse audit
44 lines • 1.7 kB
JavaScript
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
;