From 04702ae074669c8da0c7765dc8618113203fcc96 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Sun, 25 May 2025 16:55:32 +0200 Subject: [PATCH] fix(react-router): Fix `createRequestHandler` patching --- .../src/server/instrumentation/reactRouter.ts | 109 +++++++++--------- 1 file changed, 54 insertions(+), 55 deletions(-) diff --git a/packages/react-router/src/server/instrumentation/reactRouter.ts b/packages/react-router/src/server/instrumentation/reactRouter.ts index 5bfc0b62e352..1634647a0077 100644 --- a/packages/react-router/src/server/instrumentation/reactRouter.ts +++ b/packages/react-router/src/server/instrumentation/reactRouter.ts @@ -37,11 +37,15 @@ export class ReactRouterInstrumentation extends InstrumentationBase { - return this._createPatchedModuleProxy(moduleExports); - }, - (_moduleExports: unknown) => { - // nothing to unwrap here - return _moduleExports; + + const original = moduleExports.createRequestHandler; + + Object.defineProperty(moduleExports, 'createRequestHandler', { + enumerable: true, + get: () => this._createPatchedFunction(original), + }); + + return moduleExports; }, ); @@ -49,63 +53,58 @@ export class ReactRouterInstrumentation extends InstrumentationBase { - return originalRequestHandler(request, initialContext); - }, - ); - }; - }; - } - return Reflect.get(target, prop, receiver); - }, - }); + return startSpan( + { + name: getSpanName(url.pathname, request.method), + attributes: { + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.react-router', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: getOpName(url.pathname, request.method), + }, + }, + () => { + return originalRequestHandler(request, initialContext); + }, + ); + }; + }; } }