31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
// 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<ITracer>(INSTRUMENTATION_SYMBOLS.TRACER).toConstantValue(tracer);
|
|
container.bind<ILogger>(INSTRUMENTATION_SYMBOLS.LOGGER).toConstantValue(logger);
|
|
container.bind<IMetrics>(INSTRUMENTATION_SYMBOLS.METRICS).toConstantValue(metrics);
|
|
return { tracer, logger, metrics };
|
|
}
|