diff --git a/packages/serverless/src/gcpfunction/events.ts b/packages/serverless/src/gcpfunction/events.ts index 2b8606fa6997..ba2262beebd1 100644 --- a/packages/serverless/src/gcpfunction/events.ts +++ b/packages/serverless/src/gcpfunction/events.ts @@ -21,15 +21,17 @@ export function wrapEventFunction( } /** */ -function _wrapEventFunction( - fn: EventFunction | EventFunctionWithCallback, +function _wrapEventFunction( + fn: F, wrapOptions: Partial = {}, -): EventFunctionWithCallback { +): (...args: Parameters) => ReturnType | Promise { const options: EventFunctionWrapperOptions = { flushTimeout: 2000, ...wrapOptions, }; - return (data, context, callback) => { + return (...eventFunctionArguments: Parameters): ReturnType | Promise => { + const [data, context, callback] = eventFunctionArguments; + const hub = getCurrentHub(); const transaction = hub.startTransaction({ @@ -62,7 +64,9 @@ function _wrapEventFunction( __DEBUG_BUILD__ && logger.error(e); }) .then(() => { - callback(...args); + if (typeof callback === 'function') { + callback(...args); + } }); });