Skip to content

Commit 523b006

Browse files
authored
feat(browser): Make fetch the default transport for offline (#11209)
Now we only have one included transport, this simplifies the vast majority of use cases: Before: ```ts import { init, makeBrowserOfflineTransport, makeFetchTransport } from "@sentry/browser"; init({ dsn: "__DSN__", transport: makeBrowserOfflineTransport(makeFetchTransport) }) ``` After: ```ts import { init, makeBrowserOfflineTransport } from "@sentry/browser"; init({ dsn: "__DSN__", transport: makeBrowserOfflineTransport() }) ```
1 parent e9c1845 commit 523b006

File tree

3 files changed

+6
-8
lines changed

3 files changed

+6
-8
lines changed

packages/browser/src/transports/offline.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import type { OfflineStore, OfflineTransportOptions } from '@sentry/core';
22
import { makeOfflineTransport } from '@sentry/core';
3-
import type { Envelope, InternalBaseTransportOptions, Transport } from '@sentry/types';
3+
import type { BaseTransportOptions, Envelope, Transport } from '@sentry/types';
44
import { parseEnvelope, serializeEnvelope } from '@sentry/utils';
5+
import { makeFetchTransport } from './fetch';
56

67
// 'Store', 'promisifyRequest' and 'createStore' were originally copied from the 'idb-keyval' package before being
78
// modified and simplified: https://github.com/jakearchibald/idb-keyval
@@ -141,8 +142,8 @@ function makeIndexedDbOfflineTransport<T>(
141142
/**
142143
* Creates a transport that uses IndexedDb to store events when offline.
143144
*/
144-
export function makeBrowserOfflineTransport<T extends InternalBaseTransportOptions>(
145-
createTransport: (options: T) => Transport,
145+
export function makeBrowserOfflineTransport<T extends BaseTransportOptions>(
146+
createTransport: (options: T) => Transport = makeFetchTransport,
146147
): (options: T & BrowserOfflineTransportOptions) => Transport {
147148
return makeIndexedDbOfflineTransport<T>(makeOfflineTransport(createTransport));
148149
}

packages/browser/src/transports/types.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import type { BaseTransportOptions } from '@sentry/types';
22

3-
import type { BrowserOfflineTransportOptions } from './offline';
4-
5-
type BaseTransportAndOfflineTransportOptions = BaseTransportOptions & BrowserOfflineTransportOptions;
6-
7-
export interface BrowserTransportOptions extends BaseTransportAndOfflineTransportOptions {
3+
export interface BrowserTransportOptions extends BaseTransportOptions {
84
/** Fetch API init parameters. Used by the FetchTransport */
95
fetchOptions?: RequestInit;
106
/** Custom headers for the transport. Used by the XHRTransport and FetchTransport */

packages/browser/test/unit/transports/offline.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ describe('makeOfflineTransport', () => {
8989
queuedCount += 1;
9090
return true;
9191
},
92+
url: 'http://localhost',
9293
});
9394
const result = await transport.send(ERROR_ENVELOPE);
9495

0 commit comments

Comments
 (0)