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); + }, + ); + }; + }; } }