Skip to content

Commit 3602fc4

Browse files
committed
ref: keepLastCheckout
1 parent fdc0612 commit 3602fc4

File tree

8 files changed

+26
-28
lines changed

8 files changed

+26
-28
lines changed

packages/replay/src/eventBuffer/EventBufferProxy.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ReplayRecordingData, ReplayRecordingMode } from '@sentry/types';
1+
import type { ReplayRecordingData } from '@sentry/types';
22
import { logger } from '@sentry/utils';
33

44
import type { AddEventResult, EventBuffer, RecordingEvent } from '../types';
@@ -17,16 +17,15 @@ export class EventBufferProxy implements EventBuffer {
1717
private _used: EventBuffer;
1818
private _ensureWorkerIsLoadedPromise: Promise<void>;
1919

20-
public constructor(worker: Worker, recordingMode: ReplayRecordingMode) {
20+
public constructor(worker: Worker, keepLastCheckout: boolean) {
2121
this._fallback = new EventBufferArray();
2222

2323
// In error mode, we use the partitioned compression worker, which does not use compression streaming
2424
// Instead, all events are sent at finish-time, as we need to continuously modify the queued events
2525
// In session mode, we use a streaming compression implementation, which is more performant
26-
this._compression =
27-
recordingMode === 'error'
28-
? new EventBufferPartitionedCompressionWorker(worker)
29-
: new EventBufferCompressionWorker(worker);
26+
this._compression = keepLastCheckout
27+
? new EventBufferPartitionedCompressionWorker(worker)
28+
: new EventBufferCompressionWorker(worker);
3029

3130
this._used = this._fallback;
3231
this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();

packages/replay/src/eventBuffer/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { ReplayRecordingMode } from '@sentry/types';
21
import { logger } from '@sentry/utils';
32

43
import type { EventBuffer } from '../types';
@@ -8,13 +7,13 @@ import { EventBufferProxy } from './EventBufferProxy';
87

98
interface CreateEventBufferParams {
109
useCompression: boolean;
11-
recordingMode: ReplayRecordingMode;
10+
keepLastCheckout: boolean;
1211
}
1312

1413
/**
1514
* Create an event buffer for replays.
1615
*/
17-
export function createEventBuffer({ useCompression, recordingMode }: CreateEventBufferParams): EventBuffer {
16+
export function createEventBuffer({ useCompression, keepLastCheckout }: CreateEventBufferParams): EventBuffer {
1817
// eslint-disable-next-line no-restricted-globals
1918
if (useCompression && window.Worker) {
2019
try {
@@ -23,7 +22,7 @@ export function createEventBuffer({ useCompression, recordingMode }: CreateEvent
2322

2423
__DEBUG_BUILD__ && logger.log('[Replay] Using compression worker');
2524
const worker = new Worker(workerUrl);
26-
return new EventBufferProxy(worker, recordingMode);
25+
return new EventBufferProxy(worker, keepLastCheckout);
2726
} catch (error) {
2827
__DEBUG_BUILD__ && logger.log('[Replay] Failed to create compression worker');
2928
// Fall back to use simple event buffer array

packages/replay/src/replay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export class ReplayContainer implements ReplayContainerInterface {
180180

181181
this.eventBuffer = createEventBuffer({
182182
useCompression: this._options.useCompression,
183-
recordingMode: this.recordingMode,
183+
keepLastCheckout: this.recordingMode === 'error',
184184
});
185185

186186
this._addListeners();

packages/replay/test/unit/eventBuffer/EventBufferArray.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const TEST_EVENT = { data: {}, timestamp: BASE_TIMESTAMP, type: 3 };
88
describe('Unit | eventBuffer | EventBufferArray', () => {
99
for (const recordingMode of ['session', 'error'] as ReplayRecordingMode[]) {
1010
it(`adds events to normal event buffer with recordingMode=${recordingMode}`, async function () {
11-
const buffer = createEventBuffer({ useCompression: false, recordingMode });
11+
const buffer = createEventBuffer({ useCompression: false, keepLastCheckout: recordingMode === 'error' });
1212

1313
buffer.addEvent(TEST_EVENT);
1414
buffer.addEvent(TEST_EVENT);
@@ -19,7 +19,7 @@ describe('Unit | eventBuffer | EventBufferArray', () => {
1919
});
2020

2121
it(`adds checkout event to normal event buffer with recordingMode=${recordingMode}`, async function () {
22-
const buffer = createEventBuffer({ useCompression: false, recordingMode });
22+
const buffer = createEventBuffer({ useCompression: false, keepLastCheckout: recordingMode === 'error' });
2323

2424
buffer.addEvent(TEST_EVENT);
2525
buffer.addEvent(TEST_EVENT);
@@ -36,7 +36,7 @@ describe('Unit | eventBuffer | EventBufferArray', () => {
3636
});
3737

3838
it(`calling \`finish()\` multiple times does not result in duplicated events with recordingMode=${recordingMode}`, async function () {
39-
const buffer = createEventBuffer({ useCompression: false, recordingMode });
39+
const buffer = createEventBuffer({ useCompression: false, keepLastCheckout: recordingMode === 'error' });
4040

4141
buffer.addEvent(TEST_EVENT);
4242

packages/replay/test/unit/eventBuffer/EventBufferCompressionWorker.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
1313
it('adds events to event buffer with compression worker', async function () {
1414
const buffer = createEventBuffer({
1515
useCompression: true,
16-
recordingMode: 'session',
16+
keepLastCheckout: false,
1717
}) as EventBufferProxy;
1818

1919
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -35,7 +35,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
3535
it('adds checkout events to event buffer with compression worker', async function () {
3636
const buffer = createEventBuffer({
3737
useCompression: true,
38-
recordingMode: 'session',
38+
keepLastCheckout: false,
3939
}) as EventBufferProxy;
4040

4141
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -60,7 +60,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
6060
it('calling `finish()` multiple times does not result in duplicated events', async function () {
6161
const buffer = createEventBuffer({
6262
useCompression: true,
63-
recordingMode: 'session',
63+
keepLastCheckout: false,
6464
}) as EventBufferProxy;
6565

6666
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -86,7 +86,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
8686
it('calling `finish()` multiple times, with events in between, does not result in duplicated or dropped events', async function () {
8787
const buffer = createEventBuffer({
8888
useCompression: true,
89-
recordingMode: 'session',
89+
keepLastCheckout: false,
9090
}) as EventBufferProxy;
9191

9292
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -116,7 +116,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
116116
it('handles an error when compressing the payload', async function () {
117117
const buffer = createEventBuffer({
118118
useCompression: true,
119-
recordingMode: 'session',
119+
keepLastCheckout: false,
120120
}) as EventBufferProxy;
121121

122122
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -139,7 +139,7 @@ describe('Unit | eventBuffer | EventBufferCompressionWorker', () => {
139139
it('handles an error when adding an event', async function () {
140140
const buffer = createEventBuffer({
141141
useCompression: true,
142-
recordingMode: 'session',
142+
keepLastCheckout: false,
143143
}) as EventBufferProxy;
144144

145145
expect(buffer).toBeInstanceOf(EventBufferProxy);

packages/replay/test/unit/eventBuffer/EventBufferPartitionedCompressionWorker.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
1313
it('adds events to event buffer with compression worker', async function () {
1414
const buffer = createEventBuffer({
1515
useCompression: true,
16-
recordingMode: 'error',
16+
keepLastCheckout: true,
1717
}) as EventBufferProxy;
1818

1919
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -35,7 +35,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
3535
it('adds checkout events to event buffer with compression worker', async function () {
3636
const buffer = createEventBuffer({
3737
useCompression: true,
38-
recordingMode: 'error',
38+
keepLastCheckout: true,
3939
}) as EventBufferProxy;
4040

4141
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -60,7 +60,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
6060
it('calling `finish()` multiple times does not result in duplicated events', async function () {
6161
const buffer = createEventBuffer({
6262
useCompression: true,
63-
recordingMode: 'error',
63+
keepLastCheckout: true,
6464
}) as EventBufferProxy;
6565

6666
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -86,7 +86,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
8686
it('calling `finish()` multiple times, with events in between, does not result in duplicated or dropped events', async function () {
8787
const buffer = createEventBuffer({
8888
useCompression: true,
89-
recordingMode: 'error',
89+
keepLastCheckout: true,
9090
}) as EventBufferProxy;
9191

9292
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -116,7 +116,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
116116
it('handles an error when compressing the payload', async function () {
117117
const buffer = createEventBuffer({
118118
useCompression: true,
119-
recordingMode: 'error',
119+
keepLastCheckout: true,
120120
}) as EventBufferProxy;
121121

122122
expect(buffer).toBeInstanceOf(EventBufferProxy);
@@ -139,7 +139,7 @@ describe('Unit | eventBuffer | EventBufferPartitionedCompressionWorker', () => {
139139
it('handles an error when adding an event', async function () {
140140
const buffer = createEventBuffer({
141141
useCompression: true,
142-
recordingMode: 'error',
142+
keepLastCheckout: true,
143143
}) as EventBufferProxy;
144144

145145
expect(buffer).toBeInstanceOf(EventBufferProxy);

packages/replay/test/unit/eventBuffer/EventBufferProxy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('Unit | eventBuffer | EventBufferProxy', () => {
2323
it('waits for the worker to be loaded when calling finish', async function () {
2424
const buffer = createEventBuffer({
2525
useCompression: true,
26-
recordingMode: 'session',
26+
keepLastCheckout: false,
2727
}) as EventBufferProxy;
2828

2929
expect(buffer).toBeInstanceOf(EventBufferProxy);

packages/replay/test/utils/setupReplayContainer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export function setupReplayContainer({
3333
replay.recordingMode = replay.session?.sampled === 'error' ? 'error' : 'session';
3434
replay.eventBuffer = createEventBuffer({
3535
useCompression: options?.useCompression || false,
36-
recordingMode: replay.recordingMode,
36+
keepLastCheckout: replay.recordingMode === 'error',
3737
});
3838

3939
return replay;

0 commit comments

Comments
 (0)