@@ -13,7 +13,7 @@ export function wrap<TEvent, TResult>(
13
13
onStart : ( event : TEvent , context : Context ) => Promise < void > ,
14
14
onComplete : ( event : TEvent , context : Context , error ?: Error ) => Promise < void > ,
15
15
onWrap ?: OnWrapFunc ,
16
- ) : Handler < TEvent , TResult > {
16
+ ) : Handler < TEvent , TResult | undefined > {
17
17
const promHandler = promisifiedHandler ( handler ) ;
18
18
19
19
return async ( event : TEvent , context : Context ) => {
@@ -24,7 +24,7 @@ export function wrap<TEvent, TResult>(
24
24
const innerError = serializeError ( error ) ;
25
25
logError ( "Pre-lambda hook threw error" , { innerError } ) ;
26
26
}
27
- let result : TResult ;
27
+ let result : TResult | undefined ;
28
28
29
29
let handlerError : Error | undefined ;
30
30
let wrappedHandler = promHandler ;
@@ -71,7 +71,7 @@ export function promisifiedHandler<TEvent, TResult>(handler: Handler<TEvent, TRe
71
71
let modifiedLegacySucceedCallback : ( res : any ) => void = ( ) => { } ;
72
72
let modifiedLegacyFailCallback : ( err : any ) => void = ( ) => { } ;
73
73
74
- const callbackProm = new Promise < TResult > ( ( resolve , reject ) => {
74
+ const callbackProm = new Promise < TResult | undefined > ( ( resolve , reject ) => {
75
75
modifiedCallback = ( err , result ) => {
76
76
if ( err !== undefined && err !== null ) {
77
77
reject ( err ) ;
@@ -103,7 +103,7 @@ export function promisifiedHandler<TEvent, TResult>(handler: Handler<TEvent, TRe
103
103
context . fail = modifiedLegacyFailCallback ;
104
104
105
105
const asyncProm = handler ( event , context , modifiedCallback ) as Promise < TResult > | undefined ;
106
- let promise : Promise < TResult > = callbackProm ;
106
+ let promise : Promise < TResult | undefined > = callbackProm ;
107
107
if ( asyncProm !== undefined && typeof asyncProm . then === "function" ) {
108
108
// Mimics behaviour of lambda runtime, the first method of returning a result always wins.
109
109
promise = Promise . race ( [ callbackProm , asyncProm ] ) ;
0 commit comments