@opentelemetry/api
Version:
Public API for OpenTelemetry
1 lines • 2.55 kB
Source Map (JSON)
{"version":3,"file":"context-utils.mjs","names":[],"sources":["../../src/trace/context-utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createContextKey } from '../context/context';\nimport type { Context } from '../context/types';\nimport type { Span } from './span';\nimport type { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n"],"mappings":";;;;;;;AAeA,MAAM,WAAW,iBAAiB,gCAAgC;;;;;;AAOlE,SAAgB,QAAQ,SAAoC;CAC1D,OAAQ,QAAQ,SAAS,QAAQ,KAAc,KAAA;AACjD;;;;AAKA,SAAgB,gBAAkC;CAChD,OAAO,QAAQ,WAAW,YAAY,CAAC,CAAC,OAAO,CAAC;AAClD;;;;;;;AAQA,SAAgB,QAAQ,SAAkB,MAAqB;CAC7D,OAAO,QAAQ,SAAS,UAAU,IAAI;AACxC;;;;;;AAOA,SAAgB,WAAW,SAA2B;CACpD,OAAO,QAAQ,YAAY,QAAQ;AACrC;;;;;;;;AASA,SAAgB,eACd,SACA,aACS;CACT,OAAO,QAAQ,SAAS,IAAI,iBAAiB,WAAW,CAAC;AAC3D;;;;;;AAOA,SAAgB,eAAe,SAA2C;;CACxE,QAAA,WAAO,QAAQ,OAAO,OAAA,QAAA,aAAA,KAAA,IAAA,KAAA,IAAA,SAAG,YAAY;AACvC"}