Files
agentic-dev/packages/core-shared/src/instrumentation/with-span.ts

13 lines
411 B
TypeScript

import type { ITracer, SpanOpts } from "./tracer.interface";
export function withSpan<Args extends unknown[], R>(
tracer: ITracer,
opts: SpanOpts | ((args: Args) => SpanOpts),
fn: (...args: Args) => Promise<R>,
): (...args: Args) => Promise<R> {
return (...args) => {
const resolved = typeof opts === "function" ? opts(args) : opts;
return tracer.startSpan(resolved, () => fn(...args));
};
}