import type { SpanOptions, TelemetryContext, TelemetrySpan } from "./index.ts"; function startNoopSpan(_options: SpanOptions, callback: (span: TelemetrySpan) => T | Promise): Promise { 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;