@puppedo/atoms
Version:
Atoms for PuppeDo
27 lines (24 loc) • 866 B
JavaScript
module.exports = async function atomRun() {
let { filters } = this.data;
filters = Array.isArray(filters) ? filters : [filters];
if (this.getEngine('puppeteer')) {
await this.page.setRequestInterception(true);
this.page.on('request', async (interceptedRequest) => {
if (filters.some((v) => interceptedRequest.url().match(v))) {
interceptedRequest.abort();
} else {
interceptedRequest.continue();
}
});
} else if (this.getEngine('playwright')) {
for (let i = 0; i < filters.length; i++) {
const urlRegExp = filters[i];
await this.page.route(new RegExp(urlRegExp), (route) => {
route.abort()
});
}
} else {
throw new Error(`There is unknown engine ${this.getEngine()}`);
}
await this.log({ text: `Filter requests enable with mask: '${JSON.stringify(filters)}'` });
};