Files
web/packages/trpc/lib/middlewares/durationMiddleware/index.ts
Joakim Jäderberg 8a5fef6d3a Merged in chore/rename-trpc-distribution (pull request #3205)
rename trpc distribution

* rename trpc distribution


Approved-by: Linus Flood
2025-11-24 08:07:53 +00:00

29 lines
708 B
TypeScript

import * as Sentry from "@sentry/nextjs"
import { middleware } from "../../."
import { flattenInput } from "./flattenInput"
export const durationMiddleware = middleware(
async ({ path, type, next, getRawInput }) => {
const perf = performance.now()
const res = await next()
const duration = performance.now() - perf
const input = await getRawInput()
const primitiveInput = flattenInput(input)
Sentry.metrics.distribution("all-trpc", duration, {
unit: "milliseconds",
attributes: {
path,
type,
status: res.ok ? "ok" : "error",
error: res.ok ? undefined : res.error.code,
...primitiveInput,
},
})
return res
}
)