UNPKG

@platformos/pos-cli

Version:

Manage your platformOS application

76 lines 2.66 kB
import { getMainCarrier } from '@sentry/hub'; import { isInstanceOf } from '@sentry/utils'; import { Span } from './span'; /** * Checks whether given value is instance of Span * @param span value to check */ function isSpanInstance(span) { return isInstanceOf(span, Span); } /** Returns all trace headers that are currently on the top scope. */ function traceHeaders() { // @ts-ignore var that = this; var scope = that.getScope(); if (scope) { var span = scope.getSpan(); if (span) { return { 'sentry-trace': span.toTraceparent(), }; } } return {}; } /** * This functions starts a span. If argument passed is of type `Span`, it'll run sampling on it if configured * and attach a `SpanRecorder`. If it's of type `SpanContext` and there is already a `Span` on the Scope, * the created Span will have a reference to it and become it's child. Otherwise it'll crete a new `Span`. * * @param span Already constructed span which should be started or properties with which the span should be created */ function startSpan(spanOrSpanContext, forceNoChild) { if (forceNoChild === void 0) { forceNoChild = false; } // @ts-ignore var that = this; var scope = that.getScope(); var client = that.getClient(); var span; if (!isSpanInstance(spanOrSpanContext) && !forceNoChild) { if (scope) { var parentSpan = scope.getSpan(); if (parentSpan) { span = parentSpan.child(spanOrSpanContext); } } } if (!isSpanInstance(span)) { span = new Span(spanOrSpanContext, that); } if (span.sampled === undefined && span.transaction !== undefined) { var sampleRate = (client && client.getOptions().tracesSampleRate) || 0; span.sampled = Math.random() < sampleRate; } if (span.sampled) { var experimentsOptions = (client && client.getOptions()._experiments) || {}; span.initFinishedSpans(experimentsOptions.maxSpans); } return span; } /** * This patches the global object and injects the APM extensions methods */ export function addExtensionMethods() { var carrier = getMainCarrier(); if (carrier.__SENTRY__) { carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {}; if (!carrier.__SENTRY__.extensions.startSpan) { carrier.__SENTRY__.extensions.startSpan = startSpan; } if (!carrier.__SENTRY__.extensions.traceHeaders) { carrier.__SENTRY__.extensions.traceHeaders = traceHeaders; } } } //# sourceMappingURL=hubextensions.js.map