From 52f6b2dea0f4785054aafddd3c4d25a1e2a80fb3 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 10 Apr 2023 14:21:51 -0700 Subject: [PATCH 1/2] chore: moved eventSource for sharing --- .../cloudflare/src/platform/eventSource.ts | 33 ------------------- .../sdk/cloudflare/src/platform/requests.ts | 2 +- .../data_sources/StreamingProcessor.test.ts | 2 +- .../events}/MockEventSource.ts | 0 .../shared/sdk-server/src/events/index.ts | 4 +++ packages/shared/sdk-server/src/index.ts | 1 + 6 files changed, 7 insertions(+), 35 deletions(-) delete mode 100644 packages/sdk/cloudflare/src/platform/eventSource.ts rename packages/shared/sdk-server/{__tests__ => src/events}/MockEventSource.ts (100%) create mode 100644 packages/shared/sdk-server/src/events/index.ts 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..5e81d08ec3 100644 --- a/packages/sdk/cloudflare/src/platform/requests.ts +++ b/packages/sdk/cloudflare/src/platform/requests.ts @@ -1,3 +1,4 @@ +import { MockEventSource } 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 { 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..2350e88981 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 MockEventSource from '../../src/events/MockEventSource'; const sdkKey = 'my-sdk-key'; diff --git a/packages/shared/sdk-server/__tests__/MockEventSource.ts b/packages/shared/sdk-server/src/events/MockEventSource.ts similarity index 100% rename from packages/shared/sdk-server/__tests__/MockEventSource.ts rename to packages/shared/sdk-server/src/events/MockEventSource.ts 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..b4d23c0fe5 --- /dev/null +++ b/packages/shared/sdk-server/src/events/index.ts @@ -0,0 +1,4 @@ +import MockEventSource from './MockEventSource'; + +// eslint-disable-next-line import/prefer-default-export +export { MockEventSource }; 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 }; From fa76324841874960432014deddc3e86a9b6da64f Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 13 Apr 2023 13:12:01 -0700 Subject: [PATCH 2/2] chore: renamed MockEventSource NullEventSource --- packages/sdk/cloudflare/src/platform/requests.ts | 4 ++-- .../__tests__/data_sources/StreamingProcessor.test.ts | 8 ++++---- .../src/events/{MockEventSource.ts => NullEventSource.ts} | 2 +- packages/shared/sdk-server/src/events/index.ts | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) rename packages/shared/sdk-server/src/events/{MockEventSource.ts => NullEventSource.ts} (93%) diff --git a/packages/sdk/cloudflare/src/platform/requests.ts b/packages/sdk/cloudflare/src/platform/requests.ts index 5e81d08ec3..339774fb13 100644 --- a/packages/sdk/cloudflare/src/platform/requests.ts +++ b/packages/sdk/cloudflare/src/platform/requests.ts @@ -1,4 +1,4 @@ -import { MockEventSource } from '@launchdarkly/js-server-sdk-common'; +import { NullEventSource } from '@launchdarkly/js-server-sdk-common'; import type { EventSource, EventSourceInitDict, @@ -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 2350e88981..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 '../../src/events/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/src/events/MockEventSource.ts b/packages/shared/sdk-server/src/events/NullEventSource.ts similarity index 93% rename from packages/shared/sdk-server/src/events/MockEventSource.ts rename to packages/shared/sdk-server/src/events/NullEventSource.ts index 4f40462e34..2c934636ba 100644 --- a/packages/shared/sdk-server/src/events/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 index b4d23c0fe5..cc42cc024a 100644 --- a/packages/shared/sdk-server/src/events/index.ts +++ b/packages/shared/sdk-server/src/events/index.ts @@ -1,4 +1,4 @@ -import MockEventSource from './MockEventSource'; +import NullEventSource from './NullEventSource'; // eslint-disable-next-line import/prefer-default-export -export { MockEventSource }; +export { NullEventSource };