From 9fd82f5ee8c21405381be8cd6230e8b6dbb17376 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Tue, 12 Aug 2025 15:36:59 +0200 Subject: [PATCH] fix(tracer): pass args of decorated method as they are --- packages/tracer/src/Tracer.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/tracer/src/Tracer.ts b/packages/tracer/src/Tracer.ts index 77de9f9214..3c3cfb94e1 100644 --- a/packages/tracer/src/Tracer.ts +++ b/packages/tracer/src/Tracer.ts @@ -428,9 +428,12 @@ class Tracer extends Utility implements TracerInterface { const tracerRef = this; // Use a function() {} instead of an () => {} arrow function so that we can // access `myClass` as `this` in a decorated `myClass.myMethod()`. - descriptor.value = function (this: Handler, event, context, callback) { + descriptor.value = function ( + this: Handler, + ...args: Parameters + ) { if (!tracerRef.isTracingEnabled()) { - return originalMethod.apply(this, [event, context, callback]); + return originalMethod.apply(this, args); } return tracerRef.provider.captureAsyncFunc( @@ -440,11 +443,7 @@ class Tracer extends Utility implements TracerInterface { tracerRef.addServiceNameAnnotation(); let result: unknown; try { - result = await originalMethod.apply(this, [ - event, - context, - callback, - ]); + result = await originalMethod.apply(this, args); if (options?.captureResponse ?? true) { tracerRef.addResponseAsMetadata(result, process.env._HANDLER); }