From 1acc7d558b0d5db56d29701196c466a29d34b500 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 20 Mar 2024 11:59:16 +0000 Subject: [PATCH 1/2] feat(browser): Make fetch the default transport for offline --- packages/browser/src/transports/offline.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/browser/src/transports/offline.ts b/packages/browser/src/transports/offline.ts index dbccb8507c01..dd7d9c70d929 100644 --- a/packages/browser/src/transports/offline.ts +++ b/packages/browser/src/transports/offline.ts @@ -1,7 +1,8 @@ import type { OfflineStore, OfflineTransportOptions } from '@sentry/core'; import { makeOfflineTransport } from '@sentry/core'; -import type { Envelope, InternalBaseTransportOptions, Transport } from '@sentry/types'; +import type { BaseTransportOptions, Envelope, Transport } from '@sentry/types'; import { parseEnvelope, serializeEnvelope } from '@sentry/utils'; +import { makeFetchTransport } from './fetch'; // 'Store', 'promisifyRequest' and 'createStore' were originally copied from the 'idb-keyval' package before being // modified and simplified: https://github.com/jakearchibald/idb-keyval @@ -141,8 +142,8 @@ function makeIndexedDbOfflineTransport( /** * Creates a transport that uses IndexedDb to store events when offline. */ -export function makeBrowserOfflineTransport( - createTransport: (options: T) => Transport, +export function makeBrowserOfflineTransport( + createTransport: (options: T) => Transport = makeFetchTransport, ): (options: T & BrowserOfflineTransportOptions) => Transport { return makeIndexedDbOfflineTransport(makeOfflineTransport(createTransport)); } From 3d6ff72eb6de5e987de294d1b458aa09c4eaf447 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 20 Mar 2024 12:25:53 +0000 Subject: [PATCH 2/2] clean up types --- packages/browser/src/transports/types.ts | 6 +----- packages/browser/test/unit/transports/offline.test.ts | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/browser/src/transports/types.ts b/packages/browser/src/transports/types.ts index 127a7697ddb5..e0ed666cc787 100644 --- a/packages/browser/src/transports/types.ts +++ b/packages/browser/src/transports/types.ts @@ -1,10 +1,6 @@ import type { BaseTransportOptions } from '@sentry/types'; -import type { BrowserOfflineTransportOptions } from './offline'; - -type BaseTransportAndOfflineTransportOptions = BaseTransportOptions & BrowserOfflineTransportOptions; - -export interface BrowserTransportOptions extends BaseTransportAndOfflineTransportOptions { +export interface BrowserTransportOptions extends BaseTransportOptions { /** Fetch API init parameters. Used by the FetchTransport */ fetchOptions?: RequestInit; /** Custom headers for the transport. Used by the XHRTransport and FetchTransport */ diff --git a/packages/browser/test/unit/transports/offline.test.ts b/packages/browser/test/unit/transports/offline.test.ts index 758c19d30798..ccc206dbdf97 100644 --- a/packages/browser/test/unit/transports/offline.test.ts +++ b/packages/browser/test/unit/transports/offline.test.ts @@ -89,6 +89,7 @@ describe('makeOfflineTransport', () => { queuedCount += 1; return true; }, + url: 'http://localhost', }); const result = await transport.send(ERROR_ENVELOPE);