Adds gen har, network requests, meta tags
This commit is contained in:
54
api/generate-har.js
Normal file
54
api/generate-har.js
Normal file
@@ -0,0 +1,54 @@
|
||||
const puppeteer = require('puppeteer-core');
|
||||
const chromium = require('chrome-aws-lambda');
|
||||
|
||||
exports.handler = async (event, context) => {
|
||||
let browser = null;
|
||||
let result = null;
|
||||
let code = 200;
|
||||
|
||||
try {
|
||||
const url = event.queryStringParameters.url;
|
||||
|
||||
browser = await chromium.puppeteer.launch({
|
||||
args: chromium.args,
|
||||
defaultViewport: chromium.defaultViewport,
|
||||
executablePath: await chromium.executablePath,
|
||||
headless: chromium.headless,
|
||||
});
|
||||
|
||||
const page = await browser.newPage();
|
||||
|
||||
const requests = [];
|
||||
|
||||
// Capture requests
|
||||
page.on('request', request => {
|
||||
requests.push({
|
||||
url: request.url(),
|
||||
method: request.method(),
|
||||
headers: request.headers(),
|
||||
});
|
||||
});
|
||||
|
||||
await page.goto(url, {
|
||||
waitUntil: 'networkidle0', // wait until all requests are finished
|
||||
});
|
||||
|
||||
result = requests;
|
||||
|
||||
} catch (error) {
|
||||
code = 500;
|
||||
result = {
|
||||
error: 'Failed to create HAR file',
|
||||
details: error.toString(),
|
||||
};
|
||||
} finally {
|
||||
if (browser !== null) {
|
||||
await browser.close();
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
statusCode: code,
|
||||
body: JSON.stringify(result),
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user