@@ -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}
0 commit comments