diff --git a/packages/browser/src/transports/base.ts b/packages/browser/src/transports/base.ts index a4a8f054524e..a2955f7c5969 100644 --- a/packages/browser/src/transports/base.ts +++ b/packages/browser/src/transports/base.ts @@ -8,7 +8,14 @@ import { Transport, TransportOptions, } from '@sentry/types'; -import { dateTimestampInSeconds, logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils'; +import { + dateTimestampInSeconds, + getGlobalObject, + logger, + parseRetryAfterHeader, + PromiseBuffer, + SentryError, +} from '@sentry/utils'; const CATEGORY_MAPPING: { [key in SentryRequestType]: string; @@ -19,6 +26,8 @@ const CATEGORY_MAPPING: { attachment: 'attachment', }; +const global = getGlobalObject(); + /** Base Transport class implementation */ export abstract class BaseTransport implements Transport { /** @@ -42,9 +51,9 @@ export abstract class BaseTransport implements Transport { // eslint-disable-next-line deprecation/deprecation this.url = this._api.getStoreEndpointWithUrlEncodedAuth(); - if (this.options.sendClientReports && document) { - document.addEventListener('visibilitychange', () => { - if (document.visibilityState === 'hidden') { + if (this.options.sendClientReports && global && global.document) { + global.document.addEventListener('visibilitychange', () => { + if (global.document.visibilityState === 'hidden') { this._flushOutcomes(); } });