Skip to content

Commit d305f62

Browse files
authored
ref(types): deprecate transactionmethod enum (#4314)
* ref(types): deprecate transactionmethod enum * fix(types): drop transactionsamplingmethod * ref(types): deprecate outcome enum (#4315) * ref(types): deprecate outcome enum * fix(types): drop transportoutcome * ref(types): deprecate request status enum (#4316) * ref(types): deprecate request status * ref(types): deprecate session status * ref(types): remove unused logLevel (#4317) (#4320)
1 parent f87b66d commit d305f62

32 files changed

+174
-205
lines changed

packages/browser/src/transports/fetch.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';
2-
import { Event, Outcome, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';
2+
import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';
33
import { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';
44

55
import { BaseTransport } from './base';
@@ -37,7 +37,7 @@ export class FetchTransport extends BaseTransport {
3737
*/
3838
private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {
3939
if (this._isRateLimited(sentryRequest.type)) {
40-
this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);
40+
this.recordLostEvent('ratelimit_backoff', sentryRequest.type);
4141

4242
return Promise.reject({
4343
event: originalPayload,
@@ -89,9 +89,9 @@ export class FetchTransport extends BaseTransport {
8989
.then(undefined, reason => {
9090
// It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.
9191
if (reason instanceof SentryError) {
92-
this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);
92+
this.recordLostEvent('queue_overflow', sentryRequest.type);
9393
} else {
94-
this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);
94+
this.recordLostEvent('network_error', sentryRequest.type);
9595
}
9696
throw reason;
9797
});

packages/browser/src/transports/xhr.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';
2-
import { Event, Outcome, Response, SentryRequest, Session } from '@sentry/types';
2+
import { Event, Response, SentryRequest, Session } from '@sentry/types';
33
import { SentryError, SyncPromise } from '@sentry/utils';
44

55
import { BaseTransport } from './base';
@@ -26,7 +26,7 @@ export class XHRTransport extends BaseTransport {
2626
*/
2727
private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {
2828
if (this._isRateLimited(sentryRequest.type)) {
29-
this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);
29+
this.recordLostEvent('ratelimit_backoff', sentryRequest.type);
3030

3131
return Promise.reject({
3232
event: originalPayload,
@@ -66,9 +66,9 @@ export class XHRTransport extends BaseTransport {
6666
.then(undefined, reason => {
6767
// It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.
6868
if (reason instanceof SentryError) {
69-
this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);
69+
this.recordLostEvent('queue_overflow', sentryRequest.type);
7070
} else {
71-
this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);
71+
this.recordLostEvent('network_error', sentryRequest.type);
7272
}
7373
throw reason;
7474
});

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

+15-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { Outcome } from '@sentry/types';
2-
31
import { BaseTransport } from '../../../src/transports/base';
42

53
const testDsn = 'https://123@sentry.io/42';
@@ -44,12 +42,12 @@ describe('BaseTransport', () => {
4442
it('sends beacon request when there are outcomes captured and visibility changed to `hidden`', () => {
4543
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });
4644

47-
transport.recordLostEvent(Outcome.BeforeSend, 'event');
45+
transport.recordLostEvent('before_send', 'event');
4846

4947
visibilityState = 'hidden';
5048
document.dispatchEvent(new Event('visibilitychange'));
5149

52-
const outcomes = [{ reason: Outcome.BeforeSend, category: 'error', quantity: 1 }];
50+
const outcomes = [{ reason: 'before_send', category: 'error', quantity: 1 }];
5351

5452
expect(sendBeaconSpy).toHaveBeenCalledWith(
5553
envelopeEndpoint,
@@ -59,7 +57,7 @@ describe('BaseTransport', () => {
5957

6058
it('doesnt send beacon request when there are outcomes captured, but visibility state did not change to `hidden`', () => {
6159
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });
62-
transport.recordLostEvent(Outcome.BeforeSend, 'event');
60+
transport.recordLostEvent('before_send', 'event');
6361

6462
visibilityState = 'visible';
6563
document.dispatchEvent(new Event('visibilitychange'));
@@ -70,21 +68,21 @@ describe('BaseTransport', () => {
7068
it('correctly serializes request with different categories/reasons pairs', () => {
7169
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });
7270

73-
transport.recordLostEvent(Outcome.BeforeSend, 'event');
74-
transport.recordLostEvent(Outcome.BeforeSend, 'event');
75-
transport.recordLostEvent(Outcome.SampleRate, 'transaction');
76-
transport.recordLostEvent(Outcome.NetworkError, 'session');
77-
transport.recordLostEvent(Outcome.NetworkError, 'session');
78-
transport.recordLostEvent(Outcome.RateLimitBackoff, 'event');
71+
transport.recordLostEvent('before_send', 'event');
72+
transport.recordLostEvent('before_send', 'event');
73+
transport.recordLostEvent('sample_rate', 'transaction');
74+
transport.recordLostEvent('network_error', 'session');
75+
transport.recordLostEvent('network_error', 'session');
76+
transport.recordLostEvent('ratelimit_backoff', 'event');
7977

8078
visibilityState = 'hidden';
8179
document.dispatchEvent(new Event('visibilitychange'));
8280

8381
const outcomes = [
84-
{ reason: Outcome.BeforeSend, category: 'error', quantity: 2 },
85-
{ reason: Outcome.SampleRate, category: 'transaction', quantity: 1 },
86-
{ reason: Outcome.NetworkError, category: 'session', quantity: 2 },
87-
{ reason: Outcome.RateLimitBackoff, category: 'error', quantity: 1 },
82+
{ reason: 'before_send', category: 'error', quantity: 2 },
83+
{ reason: 'sample_rate', category: 'transaction', quantity: 1 },
84+
{ reason: 'network_error', category: 'session', quantity: 2 },
85+
{ reason: 'ratelimit_backoff', category: 'error', quantity: 1 },
8886
];
8987

9088
expect(sendBeaconSpy).toHaveBeenCalledWith(
@@ -97,12 +95,12 @@ describe('BaseTransport', () => {
9795
const tunnel = 'https://hello.com/world';
9896
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true, tunnel });
9997

100-
transport.recordLostEvent(Outcome.BeforeSend, 'event');
98+
transport.recordLostEvent('before_send', 'event');
10199

102100
visibilityState = 'hidden';
103101
document.dispatchEvent(new Event('visibilitychange'));
104102

105-
const outcomes = [{ reason: Outcome.BeforeSend, category: 'error', quantity: 1 }];
103+
const outcomes = [{ reason: 'before_send', category: 'error', quantity: 1 }];
106104

107105
expect(sendBeaconSpy).toHaveBeenCalledWith(
108106
tunnel,

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { Outcome } from '@sentry/types';
21
import { SentryError } from '@sentry/utils';
32

43
import { Event, Response, Transports } from '../../../src';
@@ -117,7 +116,7 @@ describe('FetchTransport', () => {
117116
try {
118117
await transport.sendEvent(eventPayload);
119118
} catch (_) {
120-
expect(spy).toHaveBeenCalledWith(Outcome.NetworkError, 'event');
119+
expect(spy).toHaveBeenCalledWith('network_error', 'event');
121120
}
122121
});
123122

@@ -129,7 +128,7 @@ describe('FetchTransport', () => {
129128
try {
130129
await transport.sendEvent(transactionPayload);
131130
} catch (_) {
132-
expect(spy).toHaveBeenCalledWith(Outcome.QueueOverflow, 'transaction');
131+
expect(spy).toHaveBeenCalledWith('queue_overflow', 'transaction');
133132
}
134133
});
135134

@@ -490,13 +489,13 @@ describe('FetchTransport', () => {
490489
try {
491490
await transport.sendEvent(eventPayload);
492491
} catch (_) {
493-
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'event');
492+
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'event');
494493
}
495494

496495
try {
497496
await transport.sendEvent(transactionPayload);
498497
} catch (_) {
499-
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'transaction');
498+
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'transaction');
500499
}
501500
});
502501
});

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { Outcome } from '@sentry/types';
21
import { SentryError } from '@sentry/utils';
32
import { fakeServer, SinonFakeServer } from 'sinon';
43

@@ -79,7 +78,7 @@ describe('XHRTransport', () => {
7978
try {
8079
await transport.sendEvent(eventPayload);
8180
} catch (_) {
82-
expect(spy).toHaveBeenCalledWith(Outcome.NetworkError, 'event');
81+
expect(spy).toHaveBeenCalledWith('network_error', 'event');
8382
}
8483
});
8584

@@ -91,7 +90,7 @@ describe('XHRTransport', () => {
9190
try {
9291
await transport.sendEvent(transactionPayload);
9392
} catch (_) {
94-
expect(spy).toHaveBeenCalledWith(Outcome.QueueOverflow, 'transaction');
93+
expect(spy).toHaveBeenCalledWith('queue_overflow', 'transaction');
9594
}
9695
});
9796

@@ -416,13 +415,13 @@ describe('XHRTransport', () => {
416415
try {
417416
await transport.sendEvent(eventPayload);
418417
} catch (_) {
419-
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'event');
418+
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'event');
420419
}
421420

422421
try {
423422
await transport.sendEvent(transactionPayload);
424423
} catch (_) {
425-
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'transaction');
424+
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'transaction');
426425
}
427426
});
428427
});

packages/core/src/baseclient.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import {
77
Integration,
88
IntegrationClass,
99
Options,
10-
Outcome,
11-
SessionStatus,
1210
SeverityLevel,
1311
Transport,
1412
} from '@sentry/types';
@@ -268,12 +266,12 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
268266
// A session is updated and that session update is sent in only one of the two following scenarios:
269267
// 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update
270268
// 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update
271-
const sessionNonTerminal = session.status === SessionStatus.Ok;
269+
const sessionNonTerminal = session.status === 'ok';
272270
const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);
273271

274272
if (shouldUpdateAndSend) {
275273
session.update({
276-
...(crashed && { status: SessionStatus.Crashed }),
274+
...(crashed && { status: 'crashed' }),
277275
errors: session.errors || Number(errored || crashed),
278276
});
279277
this.captureSession(session);
@@ -541,7 +539,7 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
541539
// 0.0 === 0% events are sent
542540
// Sampling for transaction happens somewhere else
543541
if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {
544-
recordLostEvent(Outcome.SampleRate, 'event');
542+
recordLostEvent('sample_rate', 'event');
545543
return SyncPromise.reject(
546544
new SentryError(
547545
`Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,
@@ -552,7 +550,7 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
552550
return this._prepareEvent(event, scope, hint)
553551
.then(prepared => {
554552
if (prepared === null) {
555-
recordLostEvent(Outcome.EventProcessor, event.type || 'event');
553+
recordLostEvent('event_processor', event.type || 'event');
556554
throw new SentryError('An event processor returned null, will not send event.');
557555
}
558556

@@ -566,7 +564,7 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
566564
})
567565
.then(processedEvent => {
568566
if (processedEvent === null) {
569-
recordLostEvent(Outcome.BeforeSend, event.type || 'event');
567+
recordLostEvent('before_send', event.type || 'event');
570568
throw new SentryError('`beforeSend` returned `null`, will not send event.');
571569
}
572570

packages/core/test/lib/base.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Hub, Scope, Session } from '@sentry/hub';
2-
import { Event, Outcome, Span, Transport } from '@sentry/types';
2+
import { Event, Span, Transport } from '@sentry/types';
33
import { logger, SentryError, SyncPromise } from '@sentry/utils';
44

55
import * as integrationModule from '../../src/integration';
@@ -882,7 +882,7 @@ describe('BaseClient', () => {
882882

883883
client.captureEvent({ message: 'hello' }, {});
884884

885-
expect(recordLostEventSpy).toHaveBeenCalledWith(Outcome.BeforeSend, 'event');
885+
expect(recordLostEventSpy).toHaveBeenCalledWith('before_send', 'event');
886886
});
887887

888888
test('eventProcessor can drop the even when it returns null', () => {
@@ -914,7 +914,7 @@ describe('BaseClient', () => {
914914
scope.addEventProcessor(() => null);
915915
client.captureEvent({ message: 'hello' }, {}, scope);
916916

917-
expect(recordLostEventSpy).toHaveBeenCalledWith(Outcome.EventProcessor, 'event');
917+
expect(recordLostEventSpy).toHaveBeenCalledWith('event_processor', 'event');
918918
});
919919

920920
test('eventProcessor sends an event and logs when it crashes', () => {
@@ -958,7 +958,7 @@ describe('BaseClient', () => {
958958
);
959959

960960
client.captureEvent({ message: 'hello' }, {});
961-
expect(recordLostEventSpy).toHaveBeenCalledWith(Outcome.SampleRate, 'event');
961+
expect(recordLostEventSpy).toHaveBeenCalledWith('sample_rate', 'event');
962962
});
963963
});
964964

packages/core/test/lib/request.test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DebugMeta, Event, SentryRequest, TransactionSamplingMethod } from '@sentry/types';
1+
import { DebugMeta, Event, SentryRequest } from '@sentry/types';
22

33
import { initAPIDetails } from '../../src/api';
44
import { eventToSentryRequest, sessionToSentryRequest } from '../../src/request';
@@ -44,21 +44,21 @@ describe('eventToSentryRequest', () => {
4444
});
4545

4646
it('adds transaction sampling information to item header', () => {
47-
event.debug_meta = { transactionSampling: { method: TransactionSamplingMethod.Rate, rate: 0.1121 } };
47+
event.debug_meta = { transactionSampling: { method: 'client_rate', rate: 0.1121 } };
4848

4949
const result = eventToSentryRequest(event, api);
5050
const envelope = parseEnvelopeRequest(result);
5151

5252
expect(envelope.itemHeader).toEqual(
5353
expect.objectContaining({
54-
sample_rates: [{ id: TransactionSamplingMethod.Rate, rate: 0.1121 }],
54+
sample_rates: [{ id: 'client_rate', rate: 0.1121 }],
5555
}),
5656
);
5757
});
5858

5959
it('removes transaction sampling information (and only that) from debug_meta', () => {
6060
event.debug_meta = {
61-
transactionSampling: { method: TransactionSamplingMethod.Sampler, rate: 0.1121 },
61+
transactionSampling: { method: 'client_sampler', rate: 0.1121 },
6262
dog: 'Charlie',
6363
} as DebugMeta;
6464

@@ -71,7 +71,7 @@ describe('eventToSentryRequest', () => {
7171

7272
it('removes debug_meta entirely if it ends up empty', () => {
7373
event.debug_meta = {
74-
transactionSampling: { method: TransactionSamplingMethod.Rate, rate: 0.1121 },
74+
transactionSampling: { method: 'client_rate', rate: 0.1121 },
7575
} as DebugMeta;
7676

7777
const result = eventToSentryRequest(event, api);

packages/hub/src/hub.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import {
1313
IntegrationClass,
1414
Primitive,
1515
SessionContext,
16-
SessionStatus,
1716
SeverityLevel,
1817
Span,
1918
SpanContext,
@@ -451,8 +450,8 @@ export class Hub implements HubInterface {
451450
if (scope) {
452451
// End existing session if there's one
453452
const currentSession = scope.getSession && scope.getSession();
454-
if (currentSession && currentSession.status === SessionStatus.Ok) {
455-
currentSession.update({ status: SessionStatus.Exited });
453+
if (currentSession && currentSession.status === 'ok') {
454+
currentSession.update({ status: 'exited' });
456455
}
457456
this.endSession();
458457

packages/hub/src/session.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class Session implements SessionInterface {
1313
public timestamp: number;
1414
public started: number;
1515
public duration?: number = 0;
16-
public status: SessionStatus = SessionStatus.Ok;
16+
public status: SessionStatus = 'ok';
1717
public environment?: string;
1818
public ipAddress?: string;
1919
public init: boolean = true;
@@ -88,11 +88,11 @@ export class Session implements SessionInterface {
8888
}
8989

9090
/** JSDoc */
91-
public close(status?: Exclude<SessionStatus, SessionStatus.Ok>): void {
91+
public close(status?: Exclude<SessionStatus, 'ok'>): void {
9292
if (status) {
9393
this.update({ status });
94-
} else if (this.status === SessionStatus.Ok) {
95-
this.update({ status: SessionStatus.Exited });
94+
} else if (this.status === 'ok') {
95+
this.update({ status: 'exited' });
9696
} else {
9797
this.update();
9898
}

packages/hub/src/sessionflusher.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ export class SessionFlusher implements SessionFlusherLike {
113113
}
114114

115115
switch (status) {
116-
case RequestSessionStatus.Errored:
116+
case 'errored':
117117
aggregationCounts.errored = (aggregationCounts.errored || 0) + 1;
118118
return aggregationCounts.errored;
119-
case RequestSessionStatus.Ok:
119+
case 'ok':
120120
aggregationCounts.exited = (aggregationCounts.exited || 0) + 1;
121121
return aggregationCounts.exited;
122-
case RequestSessionStatus.Crashed:
122+
default:
123123
aggregationCounts.crashed = (aggregationCounts.crashed || 0) + 1;
124124
return aggregationCounts.crashed;
125125
}

0 commit comments

Comments
 (0)