UNPKG

@opentelemetry/api

Version:
1 lines • 4.42 kB
{"version":3,"file":"propagation.cjs","names":["NoopTextMapPropagator","createBaggage","getBaggage","getActiveBaggage","setBaggage","deleteBaggage","registerGlobal","DiagAPI","defaultTextMapSetter","defaultTextMapGetter","getGlobal"],"sources":["../../src/api/propagation.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport type {\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n defaultTextMapGetter,\n defaultTextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n getBaggage,\n getActiveBaggage,\n setBaggage,\n deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n *\n * @since 1.0.0\n */\nexport class PropagationAPI {\n private static _instance?: PropagationAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Propagator API */\n public static getInstance(): PropagationAPI {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n }\n\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n public inject<Carrier>(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter<Carrier> = defaultTextMapSetter\n ): void {\n return this._getGlobalPropagator().inject(context, carrier, setter);\n }\n\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n public extract<Carrier>(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter<Carrier> = defaultTextMapGetter\n ): Context {\n return this._getGlobalPropagator().extract(context, carrier, getter);\n }\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n public fields(): string[] {\n return this._getGlobalPropagator().fields();\n }\n\n /** Remove the global propagator */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n\n public createBaggage = createBaggage;\n\n public getBaggage = getBaggage;\n\n /** @since 1.4.0 */\n public getActiveBaggage = getActiveBaggage;\n\n public setBaggage = setBaggage;\n\n public deleteBaggage = deleteBaggage;\n\n private _getGlobalPropagator(): TextMapPropagator {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n }\n}\n"],"mappings":";;;;;;;AA8BA,MAAM,WAAW;AACjB,MAAM,2BAA2B,IAAIA,8BAAAA,sBAAsB;;;;;;AAO3D,IAAa,iBAAb,MAAa,eAAe;;CAI1B,cAAsB;EA8DtB,KAAO,gBAAgBC,cAAAA;EAEvB,KAAO,aAAaC,wBAAAA;EAGpB,KAAO,mBAAmBC,wBAAAA;EAE1B,KAAO,aAAaC,wBAAAA;EAEpB,KAAO,gBAAgBC,wBAAAA;CAvEA;;CAGvB,OAAc,cAA8B;EAC1C,IAAI,CAAC,KAAK,WACR,KAAK,YAAY,IAAI,eAAe;EAGtC,OAAO,KAAK;CACd;;;;;;CAOA,oBAA2B,YAAwC;EACjE,OAAOC,qBAAAA,eAAe,UAAU,YAAYC,aAAAA,QAAQ,SAAS,CAAC;CAChE;;;;;;;;CASA,OACE,SACA,SACA,SAAiCC,0BAAAA,sBAC3B;EACN,OAAO,KAAK,qBAAqB,CAAC,CAAC,OAAO,SAAS,SAAS,MAAM;CACpE;;;;;;;;CASA,QACE,SACA,SACA,SAAiCC,0BAAAA,sBACxB;EACT,OAAO,KAAK,qBAAqB,CAAC,CAAC,QAAQ,SAAS,SAAS,MAAM;CACrE;;;;CAKA,SAA0B;EACxB,OAAO,KAAK,qBAAqB,CAAC,CAAC,OAAO;CAC5C;;CAGA,UAAiB;EACf,qBAAA,iBAAiB,UAAUF,aAAAA,QAAQ,SAAS,CAAC;CAC/C;CAaA,uBAAkD;EAChD,OAAOG,qBAAAA,UAAU,QAAQ,KAAK;CAChC;AACF"}