From 268870400dd05c1f56fc2a08b014e2cfaac0e74d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Og=C3=B3rek?= Date: Mon, 18 Nov 2019 12:16:32 +0100 Subject: [PATCH] feat: Trigger handlers when starting fetch request as well --- packages/browser/src/integrations/breadcrumbs.ts | 8 +++++++- packages/browser/src/integrations/instrumenthandlers.ts | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/browser/src/integrations/breadcrumbs.ts b/packages/browser/src/integrations/breadcrumbs.ts index db53056dfd39..378f574456e3 100644 --- a/packages/browser/src/integrations/breadcrumbs.ts +++ b/packages/browser/src/integrations/breadcrumbs.ts @@ -45,7 +45,7 @@ type XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress'; /** * Default Breadcrumbs instrumentations - * @deprecated With v6, this will be renamed + * TODO: Deprecated - with v6, this will be renamed to `Instrument` */ export class Breadcrumbs implements Integration { /** @@ -255,12 +255,16 @@ export class Breadcrumbs implements Integration { method: getFetchMethod(args), url: getFetchUrl(args), }, + requestComplete: false, startTimestamp: Date.now(), }; + triggerHandlers(handlerData); + return originalFetch.apply(global, args).then( (response: Response) => { handlerData.endTimestamp = Date.now(); + handlerData.requestComplete = true; handlerData.response = response; handlerData.fetchData.status_code = response.status; triggerHandlers(handlerData); @@ -268,6 +272,7 @@ export class Breadcrumbs implements Integration { }, (error: Error) => { handlerData.endTimestamp = Date.now(); + handlerData.requestComplete = true; handlerData.error = error; triggerHandlers(handlerData); throw error; @@ -387,6 +392,7 @@ export class Breadcrumbs implements Integration { const handlerData: { [key: string]: any } = { args, endTimestamp: Date.now(), + requestComplete: false, startTimestamp: Date.now(), xhr, }; diff --git a/packages/browser/src/integrations/instrumenthandlers.ts b/packages/browser/src/integrations/instrumenthandlers.ts index 3eeb702b4ed8..4cd570aaa241 100644 --- a/packages/browser/src/integrations/instrumenthandlers.ts +++ b/packages/browser/src/integrations/instrumenthandlers.ts @@ -103,6 +103,11 @@ function xhrBreadcrumb(handlerData: { [key: string]: any }): void { * Creates breadcrumbs from fetch API calls */ function fetchBreadcrumb(handlerData: { [key: string]: any }): void { + // We only capture complete fetch requests + if (!handlerData.requestComplete) { + return; + } + const client = getCurrentHub().getClient(); const dsn = client && client.getDsn();