import type { NodeActivationId, NodeId } from "./workflowTypes"; import type { NodeExecutionTelemetry, TelemetryArtifactAttachment, TelemetryArtifactReference, TelemetryChildSpanStart, TelemetryMetricRecord, TelemetrySpanEnd, TelemetrySpanEventRecord, TelemetrySpanScope, } from "./telemetryTypes"; import { NoOpTelemetryArtifactReference } from "./NoOpTelemetryArtifactReference"; const noOpNodeExecutionTelemetry: NodeExecutionTelemetry = { traceId: "00000000000000000000000000000000", spanId: "0000000000000000", addSpanEvent(_: TelemetrySpanEventRecord): void {}, recordMetric(_: TelemetryMetricRecord): void {}, attachArtifact(_: TelemetryArtifactAttachment): TelemetryArtifactReference { return NoOpTelemetryArtifactReference.value; }, end(_: TelemetrySpanEnd = {}): void {}, asNodeTelemetry(_: Readonly<{ nodeId: NodeId; activationId: NodeActivationId }>): NodeExecutionTelemetry { return noOpNodeExecutionTelemetry; }, forNode(_: Readonly<{ nodeId: NodeId; activationId: NodeActivationId }>): NodeExecutionTelemetry { return noOpNodeExecutionTelemetry; }, startChildSpan(_: TelemetryChildSpanStart): TelemetrySpanScope { return noOpTelemetrySpanScope; }, }; const noOpTelemetrySpanScope: TelemetrySpanScope = { traceId: "00000000000000000000000000000000", spanId: "0000000000000000", addSpanEvent(_: TelemetrySpanEventRecord): void {}, recordMetric(_: TelemetryMetricRecord): void {}, attachArtifact(_: TelemetryArtifactAttachment): TelemetryArtifactReference { return NoOpTelemetryArtifactReference.value; }, end(_: TelemetrySpanEnd = {}): void {}, asNodeTelemetry(_: Readonly<{ nodeId: NodeId; activationId: NodeActivationId }>): NodeExecutionTelemetry { return noOpNodeExecutionTelemetry; }, }; export class NoOpTelemetrySpanScope { static readonly value: TelemetrySpanScope = noOpTelemetrySpanScope; static readonly nodeExecutionTelemetryValue: NodeExecutionTelemetry = noOpNodeExecutionTelemetry; }