https://github.com/jsoverson/puppeteer-extra-interceptor
Puppeteer-extra plugin for puppeteer-interceptor
https://github.com/jsoverson/puppeteer-extra-interceptor
Last synced: 14 days ago
JSON representation
Puppeteer-extra plugin for puppeteer-interceptor
- Host: GitHub
- URL: https://github.com/jsoverson/puppeteer-extra-interceptor
- Owner: jsoverson
- Created: 2020-04-01T17:17:08.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-27T16:56:35.000Z (almost 5 years ago)
- Last Synced: 2025-03-24T16:34:44.529Z (about 1 month ago)
- Language: TypeScript
- Size: 7.81 KB
- Stars: 20
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# puppeteer-extra-plugin-interceptor
A puppeteer-extra plugin that simplifies request interception and response modification.
## Status : Experimental
The underlying APIs in the Chrome Devtools Protocol are all labeled "Experimental" so this plugin should be considered experimental as well.
## Who is this for
- Developers troubleshooting in production
- QA Engineers
- Reverse Engineers
- Penetration Testers## Documentation
Please see [puppeteer-interceptor](http://github.com/jsoverson/puppeteer-interceptor). This is just a wrapper to use with puppeteer-extra's plugin system.
## Installation
```shell
$ npm install puppeteer-extra-plugin-interceptor
```## Usage
```js
const puppeteer = require('puppeteer-extra');
const { interceptor, patterns } = require('puppeteer-extra-plugin-interceptor');puppeteer.use(interceptor());
(async function main(){
const browser = await puppeteer.launch();const [ page ] = await browser.pages();
page.intercept(patterns.Script('*'), { onResponseReceived: (response) => {
console.log(`Response is ${response.body} bytes`);
}});})()
```## Example
This example uses Prettier to automatically intercept and prettify all JavaScript.
```js
const puppeteer = require('puppeteer-extra');
const { interceptor, patterns } = require('puppeteer-extra-plugin-interceptor');puppeteer.use(interceptor());
const prettier = require('prettier');
function transform(response) {
response.body = prettier.format(response.body, {parser:'babel'});
return response;
}(async function main(){
const browser = await puppeteer.launch({
headless:false,
defaultViewport:null,
args: ['--window-size=1920,1170','--window-position=0,0']
});const [ page ] = await browser.pages();
page.intercept(patterns.Script('*'), {onResponseReceived: transform});
// intercept URLs in new tabs
browser.on('targetcreated', async (target) => {
const page = await target.page();
if (page) page.intercept(urlPatterns, transform);
});})()
```