From c77555e84c0df7abbe9b5806f6e8ea160f2fcaa9 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 23 Jun 2023 09:24:48 -0400 Subject: [PATCH] ref(replay): Remove circular dep in replay eventBuffer (#8389) When running `yarn build:watch` I found some circular deps: ``` src/eventBuffer/index.ts -> src/eventBuffer/EventBufferArray.ts -> src/eventBuffer/index.ts src/eventBuffer/index.ts -> src/eventBuffer/EventBufferProxy.ts -> src/eventBuffer/EventBufferCompressionWorker.ts -> src/eventBuffer/index.ts ``` This refactors the `EventBufferSizeExceededError` export to remove that. --- packages/replay/src/eventBuffer/EventBufferArray.ts | 2 +- .../src/eventBuffer/EventBufferCompressionWorker.ts | 2 +- packages/replay/src/eventBuffer/error.ts | 8 ++++++++ packages/replay/src/eventBuffer/index.ts | 8 -------- packages/replay/src/util/addEvent.ts | 2 +- .../replay/test/unit/eventBuffer/EventBufferArray.test.ts | 5 +++-- .../unit/eventBuffer/EventBufferCompressionWorker.test.ts | 3 ++- 7 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 packages/replay/src/eventBuffer/error.ts diff --git a/packages/replay/src/eventBuffer/EventBufferArray.ts b/packages/replay/src/eventBuffer/EventBufferArray.ts index a7b363891026..a4a823269ece 100644 --- a/packages/replay/src/eventBuffer/EventBufferArray.ts +++ b/packages/replay/src/eventBuffer/EventBufferArray.ts @@ -1,7 +1,7 @@ import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants'; import type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types'; import { timestampToMs } from '../util/timestampToMs'; -import { EventBufferSizeExceededError } from '.'; +import { EventBufferSizeExceededError } from './error'; /** * A basic event buffer that does not do any compression. diff --git a/packages/replay/src/eventBuffer/EventBufferCompressionWorker.ts b/packages/replay/src/eventBuffer/EventBufferCompressionWorker.ts index 5b4c0eb4487a..695114ebec77 100644 --- a/packages/replay/src/eventBuffer/EventBufferCompressionWorker.ts +++ b/packages/replay/src/eventBuffer/EventBufferCompressionWorker.ts @@ -3,7 +3,7 @@ import type { ReplayRecordingData } from '@sentry/types'; import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants'; import type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types'; import { timestampToMs } from '../util/timestampToMs'; -import { EventBufferSizeExceededError } from '.'; +import { EventBufferSizeExceededError } from './error'; import { WorkerHandler } from './WorkerHandler'; /** diff --git a/packages/replay/src/eventBuffer/error.ts b/packages/replay/src/eventBuffer/error.ts new file mode 100644 index 000000000000..1d60388d42d7 --- /dev/null +++ b/packages/replay/src/eventBuffer/error.ts @@ -0,0 +1,8 @@ +import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants'; + +/** This error indicates that the event buffer size exceeded the limit.. */ +export class EventBufferSizeExceededError extends Error { + public constructor() { + super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`); + } +} diff --git a/packages/replay/src/eventBuffer/index.ts b/packages/replay/src/eventBuffer/index.ts index fe58b76f3c7b..f0eb83c68243 100644 --- a/packages/replay/src/eventBuffer/index.ts +++ b/packages/replay/src/eventBuffer/index.ts @@ -1,7 +1,6 @@ import { getWorkerURL } from '@sentry-internal/replay-worker'; import { logger } from '@sentry/utils'; -import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants'; import type { EventBuffer } from '../types'; import { EventBufferArray } from './EventBufferArray'; import { EventBufferProxy } from './EventBufferProxy'; @@ -31,10 +30,3 @@ export function createEventBuffer({ useCompression }: CreateEventBufferParams): __DEBUG_BUILD__ && logger.log('[Replay] Using simple buffer'); return new EventBufferArray(); } - -/** This error indicates that the event buffer size exceeded the limit.. */ -export class EventBufferSizeExceededError extends Error { - public constructor() { - super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`); - } -} diff --git a/packages/replay/src/util/addEvent.ts b/packages/replay/src/util/addEvent.ts index 79bf4ff2f362..9533c1690dd8 100644 --- a/packages/replay/src/util/addEvent.ts +++ b/packages/replay/src/util/addEvent.ts @@ -2,7 +2,7 @@ import { EventType } from '@sentry-internal/rrweb'; import { getCurrentHub } from '@sentry/core'; import { logger } from '@sentry/utils'; -import { EventBufferSizeExceededError } from '../eventBuffer'; +import { EventBufferSizeExceededError } from '../eventBuffer/error'; import type { AddEventResult, RecordingEvent, ReplayContainer, ReplayFrameEvent } from '../types'; import { timestampToMs } from './timestampToMs'; diff --git a/packages/replay/test/unit/eventBuffer/EventBufferArray.test.ts b/packages/replay/test/unit/eventBuffer/EventBufferArray.test.ts index c7b0a4bd7e90..494d03e9572f 100644 --- a/packages/replay/test/unit/eventBuffer/EventBufferArray.test.ts +++ b/packages/replay/test/unit/eventBuffer/EventBufferArray.test.ts @@ -1,6 +1,7 @@ import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../../../src/constants'; -import { createEventBuffer, EventBufferSizeExceededError } from './../../../src/eventBuffer'; -import { BASE_TIMESTAMP } from './../../index'; +import { createEventBuffer } from '../../../src/eventBuffer'; +import { EventBufferSizeExceededError } from '../../../src/eventBuffer/error'; +import { BASE_TIMESTAMP } from '../../index'; const TEST_EVENT = { data: {}, timestamp: BASE_TIMESTAMP, type: 3 }; diff --git a/packages/replay/test/unit/eventBuffer/EventBufferCompressionWorker.test.ts b/packages/replay/test/unit/eventBuffer/EventBufferCompressionWorker.test.ts index 6c3e5948fac1..cab6855e411d 100644 --- a/packages/replay/test/unit/eventBuffer/EventBufferCompressionWorker.test.ts +++ b/packages/replay/test/unit/eventBuffer/EventBufferCompressionWorker.test.ts @@ -4,8 +4,9 @@ import pako from 'pako'; import { BASE_TIMESTAMP } from '../..'; import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../../../src/constants'; +import { createEventBuffer } from '../../../src/eventBuffer'; +import { EventBufferSizeExceededError } from '../../../src/eventBuffer/error'; import { EventBufferProxy } from '../../../src/eventBuffer/EventBufferProxy'; -import { createEventBuffer, EventBufferSizeExceededError } from './../../../src/eventBuffer'; const TEST_EVENT = { data: {}, timestamp: BASE_TIMESTAMP, type: 3 };