From 7466b07030812790ffc37611dc7977b8861771d2 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Fri, 24 May 2019 11:35:00 +0200 Subject: [PATCH] fix: tracing integration build --- CHANGELOG.md | 4 ++++ packages/integrations/src/tracing.ts | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bbc477ae55a..990e7443ca6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.3.1 + +- [integrations] fix: Tracing integration CDN build. + ## 5.3.0 - [browser] fix: Remove `use_strict` from `@sentry/browser` diff --git a/packages/integrations/src/tracing.ts b/packages/integrations/src/tracing.ts index 26d6f177bdfd..a6bc154ea55f 100644 --- a/packages/integrations/src/tracing.ts +++ b/packages/integrations/src/tracing.ts @@ -3,7 +3,7 @@ import { consoleSandbox, fill, getGlobalObject, isMatchingPattern, supportsNativ /** JSDoc */ interface TracingOptions { - tracingOrigins: Array; + tracingOrigins?: Array; traceXHR?: boolean; traceFetch?: boolean; autoStartOnDomReady?: boolean; @@ -35,7 +35,7 @@ export class Tracing implements Integration { * * @param _options TracingOptions */ - public constructor(private readonly _options: TracingOptions) { + public constructor(private readonly _options: TracingOptions = {}) { if (!Array.isArray(_options.tracingOrigins) || _options.tracingOrigins.length === 0) { consoleSandbox(() => { const defaultTracingOrigins = ['localhost', /^\//]; @@ -88,7 +88,7 @@ export class Tracing implements Integration { * JSDoc */ private _traceXHR(getCurrentHub: () => Hub): void { - if (!('XMLHttpRequest' in global)) { + if (!('XMLHttpRequest' in getGlobalObject())) { return; } @@ -116,11 +116,12 @@ export class Tracing implements Integration { function(this: XMLHttpRequest, ...args: any[]): void { // @ts-ignore const self = getCurrentHub().getIntegration(Tracing); - if (self && self._xhrUrl) { + if (self && self._xhrUrl && self._options.tracingOrigins) { + const url = self._xhrUrl; const headers = getCurrentHub().traceHeaders(); // tslint:disable-next-line: prefer-for-of const isWhitelisted = self._options.tracingOrigins.some((origin: string | RegExp) => - isMatchingPattern(self._xhrUrl, origin), + isMatchingPattern(url, origin), ); if (isWhitelisted && this.setRequestHeader) { @@ -148,12 +149,12 @@ export class Tracing implements Integration { return function(...args: any[]): void { // @ts-ignore const self = getCurrentHub().getIntegration(Tracing); - if (self) { + if (self && self._options.tracingOrigins) { const url = args[0] as string; const options = args[1] as { [key: string]: any }; let whiteListed = false; - self._options.tracingOrigins.forEach((whiteListUrl: string) => { + self._options.tracingOrigins.forEach((whiteListUrl: string | RegExp) => { if (!whiteListed) { whiteListed = isMatchingPattern(url, whiteListUrl); } @@ -171,7 +172,7 @@ export class Tracing implements Integration { } } // tslint:disable-next-line: no-unsafe-any - return originalFetch.apply(global, args); + return originalFetch.apply(getGlobalObject(), args); }; }); // tslint:enable: only-arrow-functions