File: /home/cafsindia/snap.cafsinfotech.in/node_modules/@sentry/core/cjs/tracing/trace.js.map
{"version":3,"file":"trace.js","sources":["../../../src/tracing/trace.ts"],"sourcesContent":["import type { TransactionContext } from '@sentry/types';\nimport { dropUndefinedKeys, isThenable, logger, tracingContextFromHeaders } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport type { Span } from './span';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n *\n * This function is meant to be used internally and may break at any time. Use at your own risk.\n *\n * @internal\n * @private\n */\nexport function trace<T>(\n context: TransactionContext,\n callback: (span?: Span) => T,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onError: (error: unknown) => void = () => {},\n): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(e);\n finishAndSetSpan();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishAndSetSpan();\n },\n e => {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(e);\n finishAndSetSpan();\n },\n );\n } else {\n finishAndSetSpan();\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpan<T>(context: TransactionContext, callback: (span: Span | undefined) => T): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n finishAndSetSpan();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishAndSetSpan();\n },\n () => {\n activeSpan && activeSpan.setStatus('internal_error');\n finishAndSetSpan();\n },\n );\n } else {\n finishAndSetSpan();\n }\n\n return maybePromiseResult;\n}\n\n/**\n * @deprecated Use {@link startSpan} instead.\n */\nexport const startActiveSpan = startSpan;\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpanManual<T>(\n context: TransactionContext,\n callback: (span: Span | undefined, finish: () => void) => T,\n): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan, finishAndSetSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(undefined, () => {\n activeSpan && activeSpan.setStatus('internal_error');\n });\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate` or `tracesSampler`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startInactiveSpan(context: TransactionContext): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const ctx = { ...context };\n // If a name is set and a description is not, set the description to the name.\n if (ctx.name !== undefined && ctx.description === undefined) {\n ctx.description = ctx.name;\n }\n\n const hub = getCurrentHub();\n const parentSpan = getActiveSpan();\n return parentSpan ? parentSpan.startChild(ctx) : hub.startTransaction(ctx);\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n return getCurrentHub().getScope().getSpan();\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers,\n * or in the browser from `<meta name=\"sentry-trace\">` and `<meta name=\"baggage\">` HTML tags.\n *\n * It also takes an optional `request` option, which if provided will also be added to the scope & transaction metadata.\n * The callback receives a transactionContext that may be used for `startTransaction` or `startSpan`.\n */\nexport function continueTrace<V>(\n {\n sentryTrace,\n baggage,\n }: {\n sentryTrace: Parameters<typeof tracingContextFromHeaders>[0];\n baggage: Parameters<typeof tracingContextFromHeaders>[1];\n },\n callback: (transactionContext: Partial<TransactionContext>) => V,\n): V {\n const hub = getCurrentHub();\n const currentScope = hub.getScope();\n\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n currentScope.setPropagationContext(propagationContext);\n\n if (__DEBUG_BUILD__ && traceparentData) {\n logger.log(`[Tracing] Continuing trace ${traceparentData.traceId}.`);\n }\n\n const transactionContext: Partial<TransactionContext> = {\n ...traceparentData,\n metadata: dropUndefinedKeys({\n dynamicSamplingContext: traceparentData && !dynamicSamplingContext ? {} : dynamicSamplingContext,\n }),\n };\n\n return callback(transactionContext);\n}\n\nfunction createChildSpanOrTransaction(\n hub: Hub,\n parentSpan: Span | undefined,\n ctx: TransactionContext,\n): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n return parentSpan ? parentSpan.startChild(ctx) : hub.startTransaction(ctx);\n}\n\nfunction normalizeContext(context: TransactionContext): TransactionContext {\n const ctx = { ...context };\n // If a name is set and a description is not, set the description to the name.\n if (ctx.name !== undefined && ctx.description === undefined) {\n ctx.description = ctx.name;\n }\n\n return ctx;\n}\n"],"names":["hub","getCurrentHub","isThenable","hasTracingEnabled","tracingContextFromHeaders","logger","dropUndefinedKeys"],"mappings":"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"}