@@ -35,29 +35,28 @@ const middy = (setupLambdaHandler, pluginConfig) => {
3535 const afterMiddlewares = [ ] ;
3636 const onErrorMiddlewares = [ ] ;
3737
38- const middyHandler = ( event = { } , context = { } ) => {
39- plugin . requestStart ?. ( ) ;
40- const request = {
38+ const middyRequest = ( event = { } , context = { } ) => {
39+ return {
4140 event,
4241 context,
4342 response : undefined ,
4443 error : undefined ,
4544 internal : plugin . internal ?? { } ,
4645 } ;
47-
48- return runRequest (
49- request ,
50- beforeMiddlewares ,
51- lambdaHandler ,
52- afterMiddlewares ,
53- onErrorMiddlewares ,
54- plugin ,
55- ) ;
5646 } ;
5747 const middy = plugin . streamifyResponse
5848 ? awslambda . streamifyResponse (
5949 async ( event , lambdaResponseStream , context ) => {
60- const handlerResponse = await middyHandler ( event , context ) ;
50+ plugin . requestStart ?. ( ) ;
51+ const request = middyRequest ( event , context ) ;
52+ const handlerResponse = await runRequest (
53+ request ,
54+ beforeMiddlewares ,
55+ lambdaHandler ,
56+ afterMiddlewares ,
57+ onErrorMiddlewares ,
58+ plugin ,
59+ ) ;
6160 let responseStream = lambdaResponseStream ;
6261 let handlerBody = handlerResponse ;
6362 if ( handlerResponse . statusCode ) {
@@ -89,9 +88,24 @@ const middy = (setupLambdaHandler, pluginConfig) => {
8988 }
9089
9190 await pipeline ( handlerStream , responseStream ) ;
91+ await plugin . requestEnd ?. ( request ) ;
9292 } ,
9393 )
94- : middyHandler ;
94+ : async ( event , context ) => {
95+ plugin . requestStart ?. ( ) ;
96+ const request = middyRequest ( event , context ) ;
97+
98+ const response = await runRequest (
99+ request ,
100+ beforeMiddlewares ,
101+ lambdaHandler ,
102+ afterMiddlewares ,
103+ onErrorMiddlewares ,
104+ plugin ,
105+ ) ;
106+ await plugin . requestEnd ?. ( request ) ;
107+ return response ;
108+ } ;
95109
96110 middy . use = ( inputMiddleware ) => {
97111 const middlewares = Array . isArray ( inputMiddleware )
@@ -226,8 +240,6 @@ const runRequest = async (
226240 }
227241 // Catch if onError stack hasn't handled the error
228242 if ( typeof request . response === "undefined" ) throw request . error ;
229- } finally {
230- await plugin . requestEnd ?. ( request ) ;
231243 }
232244
233245 return request . response ;
0 commit comments