Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
21 lines
645 B
TypeScript
21 lines
645 B
TypeScript
import type { SpanOptions, TelemetryContext, TelemetrySpan } from "./index.ts";
|
|
|
|
function startNoopSpan<T>(_options: SpanOptions, callback: (span: TelemetrySpan) => T | Promise<T>): Promise<T> {
|
|
try {
|
|
return Promise.resolve(callback(noopTelemetrySpan));
|
|
} catch (error) {
|
|
return Promise.reject(error);
|
|
}
|
|
}
|
|
|
|
const noopTelemetrySpan: TelemetrySpan = {
|
|
startSpan: startNoopSpan,
|
|
addEvent: () => {},
|
|
setAttributes: () => {},
|
|
setStatus: () => {},
|
|
};
|
|
Object.freeze(noopTelemetrySpan);
|
|
|
|
/** Shared telemetry context used when an application does not provide one. */
|
|
export const NOOP_TELEMETRY_CONTEXT: TelemetryContext = noopTelemetrySpan;
|