@@ -10,9 +10,6 @@ import type { Hono, MiddlewareHandler } from 'hono';
1010
1111const MIDDLEWARE_ORIGIN = 'auto.middleware.hono' ;
1212
13- // Module-level counter for anonymous middleware span names
14- let MIDDLEWARE_IDX = 0 ;
15-
1613/**
1714 * Patches `app.use` so that every middleware registered through it is automatically
1815 * wrapped in a Sentry span. Supports both forms: `app.use(...handlers)` and `app.use(path, ...handlers)`.
@@ -22,16 +19,12 @@ export function patchAppUse(app: Hono): void {
2219 apply ( target : typeof app . use , thisArg : typeof app , args : Parameters < typeof app . use > ) : ReturnType < typeof app . use > {
2320 const [ first , ...rest ] = args as [ unknown , ...MiddlewareHandler [ ] ] ;
2421
25- const getSpanName = ( handler : MiddlewareHandler ) : string => handler . name || `<anonymous.${ MIDDLEWARE_IDX ++ } >` ;
26-
2722 if ( typeof first === 'string' ) {
28- const wrappedHandlers = rest . map ( handler => wrapMiddlewareWithSpan ( handler , getSpanName ( handler ) ) ) ;
23+ const wrappedHandlers = rest . map ( handler => wrapMiddlewareWithSpan ( handler ) ) ;
2924 return Reflect . apply ( target , thisArg , [ first , ...wrappedHandlers ] ) ;
3025 }
3126
32- const allHandlers = [ first as MiddlewareHandler , ...rest ] . map ( handler =>
33- wrapMiddlewareWithSpan ( handler , getSpanName ( handler ) ) ,
34- ) ;
27+ const allHandlers = [ first as MiddlewareHandler , ...rest ] . map ( handler => wrapMiddlewareWithSpan ( handler ) ) ;
3528 return Reflect . apply ( target , thisArg , allHandlers ) ;
3629 } ,
3730 } ) ;
@@ -42,10 +35,10 @@ export function patchAppUse(app: Hono): void {
4235 * Uses startInactiveSpan so that all middleware spans are siblings under the request/transaction
4336 * (onion order: A → B → handler → B → A does not nest B under A in the trace).
4437 */
45- function wrapMiddlewareWithSpan ( handler : MiddlewareHandler , spanName : string ) : MiddlewareHandler {
38+ function wrapMiddlewareWithSpan ( handler : MiddlewareHandler ) : MiddlewareHandler {
4639 return async function sentryTracedMiddleware ( context , next ) {
4740 const span = startInactiveSpan ( {
48- name : spanName ,
41+ name : handler . name || '<anonymous>' ,
4942 op : 'middleware.hono' ,
5043 onlyIfParent : true ,
5144 attributes : {
0 commit comments