// packages/core-shared/src/instrumentation/di/bind-noop-instrumentation.ts import type { Container } from "inversify"; import { NoopTracer } from "../noop-tracer"; import { NoopLogger } from "../noop-logger"; import { NoopMetrics } from "../noop-metrics"; import { INSTRUMENTATION_SYMBOLS } from "../symbols"; import type { ITracer, ILogger, IMetrics } from "../index"; export function bindNoopInstrumentation(container: Container): { tracer: ITracer; logger: ILogger; metrics: IMetrics; } { const tracer = new NoopTracer(); const logger = new NoopLogger(); const metrics = new NoopMetrics(); if (container.isBound(INSTRUMENTATION_SYMBOLS.TRACER)) { container.unbind(INSTRUMENTATION_SYMBOLS.TRACER); } if (container.isBound(INSTRUMENTATION_SYMBOLS.LOGGER)) { container.unbind(INSTRUMENTATION_SYMBOLS.LOGGER); } if (container.isBound(INSTRUMENTATION_SYMBOLS.METRICS)) { container.unbind(INSTRUMENTATION_SYMBOLS.METRICS); } container.bind(INSTRUMENTATION_SYMBOLS.TRACER).toConstantValue(tracer); container.bind(INSTRUMENTATION_SYMBOLS.LOGGER).toConstantValue(logger); container.bind(INSTRUMENTATION_SYMBOLS.METRICS).toConstantValue(metrics); return { tracer, logger, metrics }; }