diff --git a/packages/sdk/cloudflare/src/platform/eventSource.ts b/packages/sdk/cloudflare/src/platform/eventSource.ts deleted file mode 100644 index 1d64cdd062..0000000000 --- a/packages/sdk/cloudflare/src/platform/eventSource.ts +++ /dev/null @@ -1,33 +0,0 @@ -// TODO: Dry this file duplicated in this repo -import type { EventSource, EventSourceInitDict } from '@launchdarkly/js-sdk-common'; - -export default class MockEventSource implements EventSource { - handlers: Record void> = {}; - - closed = false; - - url: string; - - options: EventSourceInitDict; - - constructor(url: string, options: EventSourceInitDict) { - this.url = url; - this.options = options; - } - - onclose: (() => void) | undefined; - - onerror: (() => void) | undefined; - - onopen: (() => void) | undefined; - - onretrying: ((e: { delayMillis: number }) => void) | undefined; - - addEventListener(type: string, listener: (event?: { data?: any }) => void): void { - this.handlers[type] = listener; - } - - close(): void { - this.closed = true; - } -} diff --git a/packages/sdk/cloudflare/src/platform/requests.ts b/packages/sdk/cloudflare/src/platform/requests.ts index a25c93d7c9..339774fb13 100644 --- a/packages/sdk/cloudflare/src/platform/requests.ts +++ b/packages/sdk/cloudflare/src/platform/requests.ts @@ -1,3 +1,4 @@ +import { NullEventSource } from '@launchdarkly/js-server-sdk-common'; import type { EventSource, EventSourceInitDict, @@ -5,7 +6,6 @@ import type { Response, Requests, } from '@launchdarkly/js-server-sdk-common'; -import MockEventSource from './eventSource'; export default class CloudflareRequests implements Requests { fetch(url: string, options: Options = {}): Promise { @@ -13,6 +13,6 @@ export default class CloudflareRequests implements Requests { } createEventSource(url: string, eventSourceInitDict: EventSourceInitDict): EventSource { - return new MockEventSource(url, eventSourceInitDict); + return new NullEventSource(url, eventSourceInitDict); } } diff --git a/packages/shared/sdk-server/__tests__/data_sources/StreamingProcessor.test.ts b/packages/shared/sdk-server/__tests__/data_sources/StreamingProcessor.test.ts index b2b40fff46..5207e8a6af 100644 --- a/packages/shared/sdk-server/__tests__/data_sources/StreamingProcessor.test.ts +++ b/packages/shared/sdk-server/__tests__/data_sources/StreamingProcessor.test.ts @@ -18,7 +18,7 @@ import InMemoryFeatureStore from '../../src/store/InMemoryFeatureStore'; import VersionedDataKinds from '../../src/store/VersionedDataKinds'; import basicPlatform from '../evaluation/mocks/platform'; import TestLogger, { LogLevel } from '../Logger'; -import MockEventSource from '../MockEventSource'; +import NullEventSource from '../../src/events/NullEventSource'; const sdkKey = 'my-sdk-key'; @@ -34,14 +34,14 @@ const info: Info = { }, }; -function createRequests(cb: (es: MockEventSource) => void): Requests { +function createRequests(cb: (es: NullEventSource) => void): Requests { return { /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ fetch(url: string, options?: Options | undefined): Promise { throw new Error('Function not implemented.'); }, createEventSource(url: string, eventSourceInitDict: EventSourceInitDict): EventSource { - const es = new MockEventSource(url, eventSourceInitDict); + const es = new NullEventSource(url, eventSourceInitDict); cb(es); return es; }, @@ -49,7 +49,7 @@ function createRequests(cb: (es: MockEventSource) => void): Requests { } describe('given a stream processor with mock event source', () => { - let es: MockEventSource; + let es: NullEventSource; let requests: Requests; let featureStore: InMemoryFeatureStore; let streamProcessor: StreamingProcessor; diff --git a/packages/shared/sdk-server/__tests__/MockEventSource.ts b/packages/shared/sdk-server/src/events/NullEventSource.ts similarity index 93% rename from packages/shared/sdk-server/__tests__/MockEventSource.ts rename to packages/shared/sdk-server/src/events/NullEventSource.ts index 4f40462e34..2c934636ba 100644 --- a/packages/shared/sdk-server/__tests__/MockEventSource.ts +++ b/packages/shared/sdk-server/src/events/NullEventSource.ts @@ -1,6 +1,6 @@ import { EventSource, EventSourceInitDict } from '@launchdarkly/js-sdk-common'; -export default class MockEventSource implements EventSource { +export default class NullEventSource implements EventSource { handlers: Record void> = {}; closed = false; diff --git a/packages/shared/sdk-server/src/events/index.ts b/packages/shared/sdk-server/src/events/index.ts new file mode 100644 index 0000000000..cc42cc024a --- /dev/null +++ b/packages/shared/sdk-server/src/events/index.ts @@ -0,0 +1,4 @@ +import NullEventSource from './NullEventSource'; + +// eslint-disable-next-line import/prefer-default-export +export { NullEventSource }; diff --git a/packages/shared/sdk-server/src/index.ts b/packages/shared/sdk-server/src/index.ts index ae210cbf63..b538e7a8cb 100644 --- a/packages/shared/sdk-server/src/index.ts +++ b/packages/shared/sdk-server/src/index.ts @@ -5,6 +5,7 @@ export * as integrations from './integrations'; export * as platform from '@launchdarkly/js-sdk-common'; export * from './api'; export * from './store'; +export * from './events'; export * from '@launchdarkly/js-sdk-common'; export { LDClientImpl, BigSegmentStoreStatusProviderImpl };