From 946f44fbf2bd4341f37468925067b92ebc27ee5b Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 14 Dec 2021 20:26:18 -0500 Subject: [PATCH] ref(core): Remove optional chaining --- packages/core/src/baseclient.ts | 17 +++++++++++++---- .../core/src/integrations/inboundfilters.ts | 2 +- packages/core/src/sdk.ts | 5 ++++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/core/src/baseclient.ts b/packages/core/src/baseclient.ts index 1b58ad5c318f..56635d434e0a 100644 --- a/packages/core/src/baseclient.ts +++ b/packages/core/src/baseclient.ts @@ -150,7 +150,7 @@ export abstract class BaseClient implement */ public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined { // ensure we haven't captured this very object before - if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) { + if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) { logger.log(ALREADY_SEEN_ERROR); return; } @@ -523,6 +523,15 @@ export abstract class BaseClient implement const { beforeSend, sampleRate } = this.getOptions(); const transport = this.getTransport(); + type RecordLostEvent = NonNullable; + type RecordLostEventParams = Parameters; + + function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void { + if (transport.recordLostEvent) { + transport.recordLostEvent(outcome, category); + } + } + if (!this._isEnabled()) { return SyncPromise.reject(new SentryError('SDK not enabled, will not capture event.')); } @@ -532,7 +541,7 @@ export abstract class BaseClient implement // 0.0 === 0% events are sent // Sampling for transaction happens somewhere else if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) { - transport.recordLostEvent?.(Outcome.SampleRate, 'event'); + recordLostEvent(Outcome.SampleRate, 'event'); return SyncPromise.reject( new SentryError( `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`, @@ -543,7 +552,7 @@ export abstract class BaseClient implement return this._prepareEvent(event, scope, hint) .then(prepared => { if (prepared === null) { - transport.recordLostEvent?.(Outcome.EventProcessor, event.type || 'event'); + recordLostEvent(Outcome.EventProcessor, event.type || 'event'); throw new SentryError('An event processor returned null, will not send event.'); } @@ -557,7 +566,7 @@ export abstract class BaseClient implement }) .then(processedEvent => { if (processedEvent === null) { - transport.recordLostEvent?.(Outcome.BeforeSend, event.type || 'event'); + recordLostEvent(Outcome.BeforeSend, event.type || 'event'); throw new SentryError('`beforeSend` returned `null`, will not send event.'); } diff --git a/packages/core/src/integrations/inboundfilters.ts b/packages/core/src/integrations/inboundfilters.ts index ca4135545c39..4d4d154e880b 100644 --- a/packages/core/src/integrations/inboundfilters.ts +++ b/packages/core/src/integrations/inboundfilters.ts @@ -194,7 +194,7 @@ export class InboundFilters implements Integration { for (let i = frames.length - 1; i >= 0; i--) { const frame = frames[i]; - if (frame?.filename !== '' && frame?.filename !== '[native code]') { + if (frame && frame.filename !== '' && frame.filename !== '[native code]') { return frame.filename || null; } } diff --git a/packages/core/src/sdk.ts b/packages/core/src/sdk.ts index f674a3e900f4..e6af9a5e2336 100644 --- a/packages/core/src/sdk.ts +++ b/packages/core/src/sdk.ts @@ -17,7 +17,10 @@ export function initAndBind(clientClass: Cl logger.enable(); } const hub = getCurrentHub(); - hub.getScope()?.update(options.initialScope); + const scope = hub.getScope(); + if (scope) { + scope.update(options.initialScope); + } const client = new clientClass(options); hub.bindClient(client); }