Skip to content

Commit c8f59c8

Browse files
committed
added error tracking
1 parent afce102 commit c8f59c8

File tree

1 file changed

+58
-50
lines changed

1 file changed

+58
-50
lines changed

src/SaveUrl.ts

Lines changed: 58 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -69,56 +69,64 @@ const options = [ '--disable-background-networking',
6969
export default class SaveUrl {
7070

7171
public static async save(event) {
72-
const { queryStringParameters: {
73-
url,
74-
html,
75-
timeout = 2000,
76-
height = 800,
77-
width = 400,
78-
killEvent = "kill"
79-
} = {} as any } = event;
80-
81-
const file = await TempFileService.getTempFile("a.png");
82-
83-
console.log(`Received URL: ${url}`);
84-
85-
const browser = await puppeteer.launch({
86-
executablePath,
87-
headless: true,
88-
userDataDir: "/tmp",
89-
dumpio: true,
90-
args: options
91-
});
92-
93-
console.log(`Puppeteer Launched.`);
94-
95-
let page = await browser.newPage();
96-
97-
console.log(`New Page created.`);
98-
page.setUserAgent(userAgent);
99-
100-
console.log(`User agent set.`);
101-
page.setViewport({ width, height });
102-
console.log(`Screen Size set.`);
103-
await page.goto(url);
104-
console.log(`Url loaded.`);
105-
106-
await sleep(timeout);
107-
console.log(`Taking screenshot.`);
108-
109-
const screen = await page.screenshot() as Buffer;
110-
console.log(`Sending screenshot.`);
111-
const body = screen.toString("base64");
112-
await browser.close();
113-
114-
return {
115-
statusCode: 200,
116-
headers: {
117-
"content-type": "image/png"
118-
},
119-
body,
120-
isBase64Encoded: true
121-
};
72+
try {
73+
const { queryStringParameters: {
74+
url,
75+
html,
76+
timeout = 2000,
77+
height = 800,
78+
width = 400,
79+
killEvent = "kill"
80+
} = {} as any } = event;
81+
82+
const file = await TempFileService.getTempFile("a.png");
83+
84+
console.log(`Received URL: ${url}`);
85+
86+
const browser = await puppeteer.launch({
87+
executablePath,
88+
headless: true,
89+
userDataDir: "/tmp",
90+
dumpio: true,
91+
args: options
92+
});
93+
94+
console.log(`Puppeteer Launched.`);
95+
96+
let page = await browser.newPage();
97+
98+
console.log(`New Page created.`);
99+
page.setUserAgent(userAgent);
100+
101+
console.log(`User agent set.`);
102+
page.setViewport({ width, height });
103+
console.log(`Screen Size set.`);
104+
await page.goto(url);
105+
console.log(`Url loaded.`);
106+
107+
await sleep(timeout);
108+
console.log(`Taking screenshot.`);
109+
110+
const screen = await page.screenshot() as Buffer;
111+
console.log(`Sending screenshot.`);
112+
const body = screen.toString("base64");
113+
await browser.close();
114+
115+
return {
116+
statusCode: 200,
117+
headers: {
118+
"content-type": "image/png"
119+
},
120+
body,
121+
isBase64Encoded: true
122+
};
123+
} catch (e) {
124+
console.error(e);
125+
return {
126+
statusCode: 500,
127+
body: e.stack ?? e.toString()
128+
}
129+
}
122130

123131
}
124132

0 commit comments

Comments
 (0)