{"version":3,"file":"NoopMeter.mjs","names":[],"sources":["../../src/metrics/NoopMeter.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Meter } from './Meter';\nimport type {\n  BatchObservableCallback,\n  Counter,\n  Gauge,\n  Histogram,\n  MetricAttributes,\n  MetricOptions,\n  Observable,\n  ObservableCallback,\n  ObservableCounter,\n  ObservableGauge,\n  ObservableUpDownCounter,\n  UpDownCounter,\n} from './Metric';\n\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nexport class NoopMeter implements Meter {\n  constructor() {}\n\n  /**\n   * @see {@link Meter.createGauge}\n   */\n  createGauge(_name: string, _options?: MetricOptions): Gauge {\n    return NOOP_GAUGE_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createHistogram}\n   */\n  createHistogram(_name: string, _options?: MetricOptions): Histogram {\n    return NOOP_HISTOGRAM_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createCounter}\n   */\n  createCounter(_name: string, _options?: MetricOptions): Counter {\n    return NOOP_COUNTER_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createUpDownCounter}\n   */\n  createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter {\n    return NOOP_UP_DOWN_COUNTER_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createObservableGauge}\n   */\n  createObservableGauge(\n    _name: string,\n    _options?: MetricOptions\n  ): ObservableGauge {\n    return NOOP_OBSERVABLE_GAUGE_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createObservableCounter}\n   */\n  createObservableCounter(\n    _name: string,\n    _options?: MetricOptions\n  ): ObservableCounter {\n    return NOOP_OBSERVABLE_COUNTER_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.createObservableUpDownCounter}\n   */\n  createObservableUpDownCounter(\n    _name: string,\n    _options?: MetricOptions\n  ): ObservableUpDownCounter {\n    return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n  }\n\n  /**\n   * @see {@link Meter.addBatchObservableCallback}\n   */\n  addBatchObservableCallback(\n    _callback: BatchObservableCallback,\n    _observables: Observable[]\n  ): void {}\n\n  /**\n   * @see {@link Meter.removeBatchObservableCallback}\n   */\n  removeBatchObservableCallback(_callback: BatchObservableCallback): void {}\n}\n\nexport class NoopMetric {}\n\nexport class NoopCounterMetric extends NoopMetric implements Counter {\n  add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopUpDownCounterMetric\n  extends NoopMetric\n  implements UpDownCounter\n{\n  add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopGaugeMetric extends NoopMetric implements Gauge {\n  record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopHistogramMetric extends NoopMetric implements Histogram {\n  record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopObservableMetric {\n  addCallback(_callback: ObservableCallback) {}\n\n  removeCallback(_callback: ObservableCallback) {}\n}\n\nexport class NoopObservableCounterMetric\n  extends NoopObservableMetric\n  implements ObservableCounter {}\n\nexport class NoopObservableGaugeMetric\n  extends NoopObservableMetric\n  implements ObservableGauge {}\n\nexport class NoopObservableUpDownCounterMetric\n  extends NoopObservableMetric\n  implements ObservableUpDownCounter {}\n\nexport const NOOP_METER = new NoopMeter();\n\n// Synchronous instruments\nexport const NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport const NOOP_GAUGE_METRIC = new NoopGaugeMetric();\nexport const NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport const NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n\n// Asynchronous instruments\nexport const NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport const NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC =\n  new NoopObservableUpDownCounterMetric();\n\n/**\n * Create a no-op Meter\n *\n * @since 1.3.0\n */\nexport function createNoopMeter(): Meter {\n  return NOOP_METER;\n}\n"],"mappings":";;;;;AAyBA,IAAa,YAAb,MAAwC;CACtC,cAAc,CAAC;;;;CAKf,YAAY,OAAe,UAAiC;EAC1D,OAAO;CACT;;;;CAKA,gBAAgB,OAAe,UAAqC;EAClE,OAAO;CACT;;;;CAKA,cAAc,OAAe,UAAmC;EAC9D,OAAO;CACT;;;;CAKA,oBAAoB,OAAe,UAAyC;EAC1E,OAAO;CACT;;;;CAKA,sBACE,OACA,UACiB;EACjB,OAAO;CACT;;;;CAKA,wBACE,OACA,UACmB;EACnB,OAAO;CACT;;;;CAKA,8BACE,OACA,UACyB;EACzB,OAAO;CACT;;;;CAKA,2BACE,WACA,cACM,CAAC;;;;CAKT,8BAA8B,WAA0C,CAAC;AAC3E;AAEA,IAAa,aAAb,MAAwB,CAAC;AAEzB,IAAa,oBAAb,cAAuC,WAA8B;CACnE,IAAI,QAAgB,aAAqC,CAAC;AAC5D;AAEA,IAAa,0BAAb,cACU,WAEV;CACE,IAAI,QAAgB,aAAqC,CAAC;AAC5D;AAEA,IAAa,kBAAb,cAAqC,WAA4B;CAC/D,OAAO,QAAgB,aAAqC,CAAC;AAC/D;AAEA,IAAa,sBAAb,cAAyC,WAAgC;CACvE,OAAO,QAAgB,aAAqC,CAAC;AAC/D;AAEA,IAAa,uBAAb,MAAkC;CAChC,YAAY,WAA+B,CAAC;CAE5C,eAAe,WAA+B,CAAC;AACjD;AAEA,IAAa,8BAAb,cACU,qBACqB,CAAC;AAEhC,IAAa,4BAAb,cACU,qBACmB,CAAC;AAE9B,IAAa,oCAAb,cACU,qBAC2B,CAAC;AAEtC,MAAa,aAAa,IAAI,UAAU;AAGxC,MAAa,sBAAsB,IAAI,kBAAkB;AACzD,MAAa,oBAAoB,IAAI,gBAAgB;AACrD,MAAa,wBAAwB,IAAI,oBAAoB;AAC7D,MAAa,8BAA8B,IAAI,wBAAwB;AAGvE,MAAa,iCAAiC,IAAI,4BAA4B;AAC9E,MAAa,+BAA+B,IAAI,0BAA0B;AAC1E,MAAa,yCACX,IAAI,kCAAkC;;;;;;AAOxC,SAAgB,kBAAyB;CACvC,OAAO;AACT"}