From bbf7b43beb698ede04abe27f2b70aafabe19d20d Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 14 Dec 2021 20:47:34 -0500 Subject: [PATCH] ref(tracing): Remove optional chaining --- packages/tracing/src/browser/metrics.ts | 2 +- packages/tracing/src/browser/request.ts | 4 ++-- packages/tracing/src/hubextensions.ts | 10 ++++++---- packages/tracing/src/transaction.ts | 10 +++++----- packages/tracing/src/utils.ts | 14 +++++++------- 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index b38194646217..867849966516 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -23,7 +23,7 @@ export class MetricsInstrumentation { private _clsEntry: LayoutShift | undefined; public constructor(private _reportAllChanges: boolean = false) { - if (!isNodeEnv() && global?.performance && global?.document) { + if (!isNodeEnv() && global && global.performance && global.document) { if (global.performance.mark) { global.performance.mark('sentry-tracing-init'); } diff --git a/packages/tracing/src/browser/request.ts b/packages/tracing/src/browser/request.ts index 885d381017dc..db9bf8066314 100644 --- a/packages/tracing/src/browser/request.ts +++ b/packages/tracing/src/browser/request.ts @@ -214,8 +214,8 @@ export function xhrCallback( ): void { if ( !hasTracingEnabled() || - handlerData.xhr?.__sentry_own_request__ || - !(handlerData.xhr?.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url)) + (handlerData.xhr && handlerData.xhr.__sentry_own_request__) || + !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url)) ) { return; } diff --git a/packages/tracing/src/hubextensions.ts b/packages/tracing/src/hubextensions.ts index 601cf93b769f..a70aa01e18a5 100644 --- a/packages/tracing/src/hubextensions.ts +++ b/packages/tracing/src/hubextensions.ts @@ -166,7 +166,8 @@ function _startTransaction( transactionContext: TransactionContext, customSamplingContext?: CustomSamplingContext, ): Transaction { - const options = this.getClient()?.getOptions() || {}; + const client = this.getClient(); + const options = (client && client.getOptions()) || {}; let transaction = new Transaction(transactionContext, this); transaction = sample(transaction, options, { @@ -175,7 +176,7 @@ function _startTransaction( ...customSamplingContext, }); if (transaction.sampled) { - transaction.initSpanRecorder(options._experiments?.maxSpans as number); + transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number)); } return transaction; } @@ -190,7 +191,8 @@ export function startIdleTransaction( onScope?: boolean, customSamplingContext?: CustomSamplingContext, ): IdleTransaction { - const options = hub.getClient()?.getOptions() || {}; + const client = hub.getClient(); + const options = (client && client.getOptions()) || {}; let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope); transaction = sample(transaction, options, { @@ -199,7 +201,7 @@ export function startIdleTransaction( ...customSamplingContext, }); if (transaction.sampled) { - transaction.initSpanRecorder(options._experiments?.maxSpans as number); + transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number)); } return transaction; } diff --git a/packages/tracing/src/transaction.ts b/packages/tracing/src/transaction.ts index 3b98a533f289..45cb41357863 100644 --- a/packages/tracing/src/transaction.ts +++ b/packages/tracing/src/transaction.ts @@ -104,11 +104,11 @@ export class Transaction extends SpanClass implements TransactionInterface { // At this point if `sampled !== true` we want to discard the transaction. logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.'); - this._hub - .getClient() - ?.getTransport?.() - .recordLostEvent?.(Outcome.SampleRate, 'transaction'); - + const client = this._hub.getClient(); + const transport = client && client.getTransport && client.getTransport(); + if (transport && transport.recordLostEvent) { + transport.recordLostEvent(Outcome.SampleRate, 'transaction'); + } return undefined; } diff --git a/packages/tracing/src/utils.ts b/packages/tracing/src/utils.ts index 636d4e7f035b..0e2ea9ed694b 100644 --- a/packages/tracing/src/utils.ts +++ b/packages/tracing/src/utils.ts @@ -14,11 +14,9 @@ export const TRACEPARENT_REGEXP = new RegExp( * * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config. */ -export function hasTracingEnabled( - options: Options | undefined = getCurrentHub() - .getClient() - ?.getOptions(), -): boolean { +export function hasTracingEnabled(maybeOptions?: Options | undefined): boolean { + const client = getCurrentHub().getClient(); + const options = maybeOptions || (client && client.getOptions()); return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options); } @@ -48,8 +46,10 @@ export function extractTraceparentData(traceparent: string): TraceparentData | u } /** Grabs active transaction off scope, if any */ -export function getActiveTransaction(hub: Hub = getCurrentHub()): T | undefined { - return hub?.getScope()?.getTransaction() as T | undefined; +export function getActiveTransaction(maybeHub?: Hub): T | undefined { + const hub = maybeHub || getCurrentHub(); + const scope = hub.getScope(); + return scope && (scope.getTransaction() as T | undefined); } /**