{"version":3,"file":"ProxyTracerProvider.cjs","names":["NoopTracerProvider","ProxyTracer"],"sources":["../../src/trace/ProxyTracerProvider.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Tracer } from './tracer';\nimport type { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport type { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n *   When a delegate is set, traces are provided from the delegate.\n *   When a delegate is set after tracers have already been provided,\n *   all tracers already provided will use the provided delegate implementation.\n *\n * @deprecated This will be removed in the next major version.\n * @since 1.0.0\n */\nexport class ProxyTracerProvider implements TracerProvider {\n  private _delegate?: TracerProvider;\n\n  /**\n   * Get a {@link ProxyTracer}\n   */\n  getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n    return (\n      this.getDelegateTracer(name, version, options) ??\n      new ProxyTracer(this, name, version, options)\n    );\n  }\n\n  getDelegate(): TracerProvider {\n    return this._delegate ?? NOOP_TRACER_PROVIDER;\n  }\n\n  /**\n   * Set the delegate tracer provider\n   */\n  setDelegate(delegate: TracerProvider) {\n    this._delegate = delegate;\n  }\n\n  getDelegateTracer(\n    name: string,\n    version?: string,\n    options?: TracerOptions\n  ): Tracer | undefined {\n    return this._delegate?.getTracer(name, version, options);\n  }\n}\n"],"mappings":";;AAWA,MAAM,uBAAuB,uCAAIA,EAAAA,CAAAA,mBAAmB;;;;;;;;;;;;AAapD,IAAa,sBAAb,MAA2D;;;;CAMzD,UAAU,MAAc,SAAkB,SAAiC;;EACzE,QAAA,wBACE,KAAK,kBAAkB,MAAM,SAAS,OAAO,OAAA,QAAA,0BAAA,KAAA,IAAA,wBAC7C,IAAIC,oBAAAA,YAAY,MAAM,MAAM,SAAS,OAAO;CAEhD;CAEA,cAA8B;;EAC5B,QAAA,kBAAO,KAAK,eAAA,QAAA,oBAAA,KAAA,IAAA,kBAAa;CAC3B;;;;CAKA,YAAY,UAA0B;EACpC,KAAK,YAAY;CACnB;CAEA,kBACE,MACA,SACA,SACoB;;EACpB,QAAA,mBAAO,KAAK,eAAA,QAAA,qBAAA,KAAA,IAAA,KAAA,IAAA,iBAAW,UAAU,MAAM,SAAS,OAAO;CACzD;AACF"}