Skip to content

Commit 7a011ef

Browse files
committed
Catch all exceptions
1 parent 02142d9 commit 7a011ef

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

src/lambda-wrapper.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,27 @@ exports.ApiGatewayHandler = (router, finalHandler) => {
2020
*/
2121
return handleApiGatewayEvent = (event, context) => {
2222
return new Promise((resolve, reject) => {
23+
try {
24+
const req = new Request(event);
25+
const res = req.res = new Response(req, out => {
26+
resolve(finalHandler(null, out, req, res))
27+
});
2328

24-
const req = new Request(event);
25-
const res = req.res = new Response(req, out => {
26-
resolve(finalHandler(null, out, req, res))
27-
});
28-
29-
// run middleware managed by router
30-
router(req, res, async err => {
31-
if (err) {
32-
// unexpected errors should be handled by final handler
33-
resolve(finalHandler(err, null, req, res))
34-
} else if (res.writableEnded) {
35-
console.error('ERROR: next() should not be used after res.send() within routing middleware');
36-
} else {
37-
// expected error
38-
res.status(404).send('Not found');
39-
}
40-
})
41-
29+
// run middleware managed by router
30+
router(req, res, async err => {
31+
if (err) {
32+
// unexpected errors should be handled by final handler
33+
resolve(finalHandler(err, null, req, res))
34+
} else if (res.writableEnded) {
35+
console.error('ERROR: next() should not be used after res.send() within routing middleware');
36+
} else {
37+
// expected error
38+
res.status(404).send('Not found');
39+
}
40+
})
41+
} catch (error) {
42+
resolve(finalHandler(error, null, null, null))
43+
}
4244
})
4345
}
4446
}

src/lambda-wrapper.spec.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ describe('Lambda Wrapper', () => {
130130
})
131131

132132
const lambdaHandler2 = ApiGatewayHandler(router, err => {
133-
console.log('OK2')
134133
expect(err).toEqual(Error('test'));
135134
})
136135
await lambdaHandler2(proxyRequest, {})

0 commit comments

Comments
 (0)