File size: 588 Bytes
98c9143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import type { MiddlewareHandler } from "hono"

import { requestContext, resolveTraceId } from "./request-context"

export const traceIdMiddleware: MiddlewareHandler = async (c, next) => {
  const traceId = resolveTraceId(c.req.header("x-trace-id"))

  c.header("x-trace-id", traceId)

  const context = {
    traceId,
    startTime: Date.now(),
    userAgent: c.req.header("user-agent") || "",
    sessionAffinity: c.req.header("x-session-affinity"),
    parentSessionId: c.req.header("x-parent-session-id"),
  }

  await requestContext.run(context, async () => {
    await next()
  })
}