veloze
Version:
A modern and fast express-like webserver for the web
22 lines (19 loc) • 538 B
JavaScript
import { TraceParent } from '#utils/traceParent.js'
import { getHeader } from '#request/getHeader.js'
/**
* @typedef {import('../types.js').HandlerCb} HandlerCb
*/
/**
* Middleware which sets a parsed or fresh request traceparent
* @see https://www.w3.org/TR/trace-context
* @returns {HandlerCb}
*/
export function traceContext() {
return function traceContextMw(req, res, next) {
// @ts-expect-error
req.traceparent = TraceParent.parse(
getHeader(req, 'traceparent') || ''
).addResponse(res)
next()
}
}