{"version":3,"sources":["../../../src/trace/ProxyTracerProvider.ts"],"names":["ProxyTracerProvider","_delegate","getTracer","version","options","getDelegateTracer","l","getDelegate","setDelegate"],"mappings":"4KAsB6B,IAAA,CAAA,CAAA,IAYhBA,yCAAN,QAlCP,CAAA,OAkCaA,mBAAAA,CAAAA,IAAAA,CAAAA,qBACJC,EAAAA,CAAAA,SAKRC,CAAAA,SAAwBC,EAAkBC,CAAAA,CAAiC,CAC1E,CAAA,CAAA,CAAA,OAAO,IAAKC,CAAAA,iBAAwBF,CAAAA,CAASC,CAAAA,GAAY,CAAA,EAAA,IAAgBE,2BAAA,CAAA,IAAYH,CAAAA,CAASC,CAAAA,CAC/F,CAEAG,CAAAA,CAAAA,CAAAA,WACC,EAAA,CAAA,OAAO,IAAKN,CAAAA,SACb,EAKAO,CAAAA,CAAAA,WAAsC,CACrC,CAAA,CAAA,CAAA,IAAKP,CAAAA,SAGNI,CAAAA,EAAAA,CAAAA,iBAAgCF,CAAAA,CAAkBC,EAA6C,CAC9F,CAAA,CAAA,CAAA,OAAO,IAAKH,CAAAA,SAAWC,EAAAA,SAAgBC,CAAAA,CAASC,CAAAA,CACjD,CACD,CAAA,CAAA,CAAA","file":"ProxyTracerProvider.cjs","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 * @since 1.0.0\n */\nexport class ProxyTracerProvider implements TracerProvider {\n\tprivate _delegate?: TracerProvider;\n\n\t/**\n\t * Get a {@link ProxyTracer}\n\t */\n\tgetTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n\t\treturn this.getDelegateTracer(name, version, options) ?? new ProxyTracer(this, name, version, options);\n\t}\n\n\tgetDelegate(): TracerProvider {\n\t\treturn this._delegate ?? NOOP_TRACER_PROVIDER;\n\t}\n\n\t/**\n\t * Set the delegate tracer provider\n\t */\n\tsetDelegate(delegate: TracerProvider) {\n\t\tthis._delegate = delegate;\n\t}\n\n\tgetDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined {\n\t\treturn this._delegate?.getTracer(name, version, options);\n\t}\n}\n"]}