@@ -18,29 +18,28 @@ const eventWithMultiValueHeaders = (event: handler.APIGatewayEvent): boolean =>
18
18
19
19
const handlerPromise = ( appPromiseFn : ( ) => Promise < RequestListener > ) : handler . APIGatewayEventHandler => {
20
20
let _p : Promise < RequestListener > | null = null ;
21
- return ( event , ctx ) => {
21
+ return async ( event , ctx ) => {
22
22
if ( ! _p ) {
23
23
_p = appPromiseFn ( ) ;
24
24
}
25
- return _p
26
- . then ( app => processRequest ( app , event , ctx ) ) ;
27
- }
25
+ const app = await _p ;
26
+ return processRequest ( app , event , ctx ) ;
27
+ }
28
28
}
29
29
30
- const processRequest = ( app : RequestListener , event : handler . APIGatewayEvent , ctx ?: handler . LambdaContext ) : Promise < handler . LambdaResponse > =>
31
- Promise . resolve ( )
32
- . then ( ( ) => {
33
- const reqOptions = eventToRequestOptions ( event , ctx ) ;
34
- const appHandler = inProcessRequestHandler ( app ) ;
35
- return appHandler ( reqOptions )
36
- } )
37
- . then ( res => inProcessResponseToLambdaResponse ( res , eventWithMultiValueHeaders ( event ) ) )
38
- . catch ( e => {
39
- console . error ( e ) ;
40
- return errorResponse ( ) ;
41
- } ) ;
30
+ const processRequest = async ( app : RequestListener , event : handler . APIGatewayEvent , ctx ?: handler . LambdaContext ) : Promise < handler . LambdaResponse > => {
31
+ try {
32
+ const reqOptions = eventToRequestOptions ( event , ctx ) ;
33
+ const appHandler = inProcessRequestHandler ( app ) ;
34
+ const mockResponse = await appHandler ( reqOptions ) ;
35
+ return inProcessResponseToLambdaResponse ( mockResponse , eventWithMultiValueHeaders ( event ) ) ;
36
+ } catch ( e ) {
37
+ console . error ( e ) ;
38
+ return errorResponse ( ) ;
39
+ }
40
+ }
42
41
43
- const handler = ( app : RequestListener ) : handler . APIGatewayEventHandler => handlerPromise ( ( ) => Promise . resolve ( app ) ) ;
42
+ const handler = ( app : RequestListener ) : handler . APIGatewayEventHandler => handlerPromise ( async ( ) => app ) ;
44
43
45
44
handler . deferred = handlerPromise ;
46
45
0 commit comments