Skip to content

Commit fe6d284

Browse files
remove enum
1 parent ffe940a commit fe6d284

File tree

12 files changed

+49
-63
lines changed

12 files changed

+49
-63
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@splitsoftware/splitio-commons",
3-
"version": "2.10.2-rc.3",
3+
"version": "2.10.2-rc.4",
44
"description": "Split JavaScript SDK common components",
55
"main": "cjs/index.js",
66
"module": "esm/index.js",

src/readiness/__tests__/readinessManager.spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { readinessManagerFactory } from '../readinessManager';
22
import { EventEmitter } from '../../utils/MinEvents';
33
import { IReadinessManager } from '../types';
4-
import { SDK_READY, SDK_UPDATE, SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_READY_FROM_CACHE, SDK_SPLITS_CACHE_LOADED, SDK_READY_TIMED_OUT } from '../constants';
4+
import { SDK_READY, SDK_UPDATE, SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_READY_FROM_CACHE, SDK_SPLITS_CACHE_LOADED, SDK_READY_TIMED_OUT, FLAGS_UPDATE, SEGMENTS_UPDATE } from '../constants';
55
import { ISettings } from '../../types';
66
import { SdkUpdateMetadata, SdkReadyMetadata } from '../../../types/splitio';
7-
import { SdkUpdateMetadataKeys } from '../../sync/polling/types';
87

98
const settings = {
109
startup: {
@@ -311,7 +310,7 @@ test('READINESS MANAGER / SDK_UPDATE should emit with metadata', () => {
311310
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
312311

313312
const metadata: SdkUpdateMetadata = {
314-
type: SdkUpdateMetadataKeys.FLAGS_UPDATE,
313+
type: FLAGS_UPDATE,
315314
names: ['flag1', 'flag2']
316315
};
317316

@@ -350,7 +349,7 @@ test('READINESS MANAGER / SDK_UPDATE should forward metadata from segments', ()
350349
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
351350

352351
const metadata: SdkUpdateMetadata = {
353-
type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE,
352+
type: SEGMENTS_UPDATE,
354353
names: []
355354
};
356355

src/readiness/constants.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,7 @@ export const SDK_READY_TIMED_OUT = 'init::timeout';
1010
export const SDK_READY = 'init::ready';
1111
export const SDK_READY_FROM_CACHE = 'init::cache-ready';
1212
export const SDK_UPDATE = 'state::update';
13+
14+
// SdkUpdateMetadata types:
15+
export const FLAGS_UPDATE = 'FLAGS_UPDATE';
16+
export const SEGMENTS_UPDATE = 'SEGMENTS_UPDATE';

src/sync/offline/syncTasks/fromObjectSyncTask.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ import { syncTaskFactory } from '../../syncTask';
77
import { ISyncTask } from '../../types';
88
import { ISettings } from '../../../types';
99
import { CONTROL } from '../../../utils/constants';
10-
import { SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_SPLITS_CACHE_LOADED } from '../../../readiness/constants';
10+
import { SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED, SDK_SPLITS_CACHE_LOADED, FLAGS_UPDATE, SEGMENTS_UPDATE } from '../../../readiness/constants';
1111
import { SYNC_OFFLINE_DATA, ERROR_SYNC_OFFLINE_LOADING } from '../../../logger/constants';
12-
import { SdkUpdateMetadataKeys } from '../../polling/types';
1312

1413
/**
1514
* Offline equivalent of `splitChangesUpdaterFactory`
@@ -56,15 +55,15 @@ export function fromObjectUpdaterFactory(
5655
splitsCache.clear(), // required to sync removed splits from mock
5756
splitsCache.update(splits, [], Date.now())
5857
]).then(() => {
59-
readiness.splits.emit(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [] });
58+
readiness.splits.emit(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: [] });
6059

6160
if (startingUp) {
6261
startingUp = false;
6362
Promise.resolve(storage.validateCache ? storage.validateCache() : false).then((isCacheLoaded) => {
6463
// Emits SDK_READY_FROM_CACHE
6564
if (isCacheLoaded) readiness.splits.emit(SDK_SPLITS_CACHE_LOADED);
6665
// Emits SDK_READY
67-
readiness.segments.emit(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
66+
readiness.segments.emit(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
6867
});
6968
}
7069
return true;

src/sync/polling/types.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,6 @@ import { IStorageSync } from '../../storages/types';
44
import { MEMBERSHIPS_LS_UPDATE, MEMBERSHIPS_MS_UPDATE } from '../streaming/types';
55
import { ITask, ISyncTask } from '../types';
66

7-
/**
8-
* Metadata keys for SDK update events.
9-
*/
10-
export enum SdkUpdateMetadataKeys {
11-
/**
12-
* The update event emitted when the SDK cache is updated with new data for flags.
13-
*/
14-
FLAGS_UPDATE = 'FLAGS_UPDATE',
15-
/**
16-
* The update event emitted when the SDK cache is updated with new data for segments.
17-
*/
18-
SEGMENTS_UPDATE = 'SEGMENTS_UPDATE'
19-
}
20-
217
export interface ISplitsSyncTask extends ISyncTask<[noCache?: boolean, till?: number, splitUpdateNotification?: { payload: ISplit | IRBSegment, changeNumber: number }], boolean> { }
228

239
export interface ISegmentsSyncTask extends ISyncTask<[fetchOnlyNew?: boolean, segmentName?: string, noCache?: boolean, till?: number], boolean> { }

src/sync/polling/updaters/__tests__/mySegmentsUpdater.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import { EventEmitter } from '../../../../utils/MinEvents';
66
import { loggerMock } from '../../../../logger/__tests__/sdkLogger.mock';
77
import { IMySegmentsFetcher } from '../../fetchers/types';
88
import { IMembershipsResponse } from '../../../../dtos/types';
9-
import { SDK_SEGMENTS_ARRIVED } from '../../../../readiness/constants';
10-
import { SdkUpdateMetadataKeys } from '../../types';
9+
import { SDK_SEGMENTS_ARRIVED, SEGMENTS_UPDATE } from '../../../../readiness/constants';
1110
import { MySegmentsData } from '../../types';
1211
import { MEMBERSHIPS_MS_UPDATE } from '../../../streaming/constants';
1312
import { IStorageSync } from '../../../../storages/types';
@@ -59,7 +58,7 @@ describe('mySegmentsUpdater', () => {
5958

6059
await mySegmentsUpdater();
6160

62-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
61+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
6362
});
6463

6564
test('test with mySegments data payload - should emit SEGMENTS_UPDATE metadata', async () => {
@@ -82,7 +81,7 @@ describe('mySegmentsUpdater', () => {
8281

8382
await mySegmentsUpdater(segmentsData);
8483

85-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
84+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
8685
});
8786

8887
test('test with empty mySegments - should still emit SEGMENTS_UPDATE metadata', async () => {
@@ -103,6 +102,6 @@ describe('mySegmentsUpdater', () => {
103102

104103
await mySegmentsUpdater();
105104

106-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
105+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
107106
});
108107
});

src/sync/polling/updaters/__tests__/segmentChangesUpdater.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import { EventEmitter } from '../../../../utils/MinEvents';
66
import { loggerMock } from '../../../../logger/__tests__/sdkLogger.mock';
77
import { ISegmentChangesFetcher } from '../../fetchers/types';
88
import { ISegmentChangesResponse } from '../../../../dtos/types';
9-
import { SDK_SEGMENTS_ARRIVED } from '../../../../readiness/constants';
10-
import { SdkUpdateMetadataKeys } from '../../types';
9+
import { SDK_SEGMENTS_ARRIVED, SEGMENTS_UPDATE } from '../../../../readiness/constants';
1110

1211
describe('segmentChangesUpdater', () => {
1312
const segments = new SegmentsCacheInMemory();
@@ -48,7 +47,7 @@ describe('segmentChangesUpdater', () => {
4847
await segmentChangesUpdater(undefined, segmentName);
4948

5049
expect(updateSegments).toHaveBeenCalledWith(segmentName, segmentChange.added, segmentChange.removed, segmentChange.till);
51-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
50+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
5251
});
5352

5453
test('test with multiple segments update - should emit SEGMENTS_UPDATE metadata once', async () => {
@@ -102,7 +101,7 @@ describe('segmentChangesUpdater', () => {
102101

103102
// Should emit once when all segments are updated
104103
expect(segmentsEmitSpy).toHaveBeenCalledTimes(1);
105-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
104+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
106105
});
107106

108107
test('test with empty segments - should still emit SEGMENTS_UPDATE metadata', async () => {
@@ -130,6 +129,6 @@ describe('segmentChangesUpdater', () => {
130129

131130
await segmentChangesUpdater(undefined, segmentName);
132131

133-
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
132+
expect(segmentsEmitSpy).toBeCalledWith(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
134133
});
135134
});

src/sync/polling/updaters/__tests__/splitChangesUpdater.spec.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import { splitNotifications } from '../../../streaming/__tests__/dataMocks';
1515
import { RBSegmentsCacheInMemory } from '../../../../storages/inMemory/RBSegmentsCacheInMemory';
1616
import { RB_SEGMENT_UPDATE, SPLIT_UPDATE } from '../../../streaming/constants';
1717
import { IN_RULE_BASED_SEGMENT } from '../../../../utils/constants';
18-
import { SDK_SPLITS_ARRIVED } from '../../../../readiness/constants';
19-
import { SdkUpdateMetadataKeys } from '../../types';
18+
import { SDK_SPLITS_ARRIVED, FLAGS_UPDATE, SEGMENTS_UPDATE } from '../../../../readiness/constants';
2019

2120
const ARCHIVED_FF = 'ARCHIVED';
2221

@@ -222,7 +221,7 @@ describe('splitChangesUpdater', () => {
222221
expect(updateSplits).lastCalledWith(splitChangesMock1.ff.d, [], splitChangesMock1.ff.t);
223222
expect(updateRbSegments).toBeCalledTimes(0); // no rbSegments to update
224223
expect(registerSegments).toBeCalledTimes(1);
225-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: updatedFlags });
224+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: updatedFlags });
226225
expect(result).toBe(true);
227226
});
228227

@@ -288,7 +287,7 @@ describe('splitChangesUpdater', () => {
288287
for (const setMock of setMocks) {
289288
await expect(splitChangesUpdater(undefined, undefined, { payload: { ...payload, sets: setMock.sets, status: 'ACTIVE' }, changeNumber: index, type: SPLIT_UPDATE })).resolves.toBe(true);
290289
expect(splitsEmitSpy.mock.calls[index][0]).toBe(SDK_SPLITS_ARRIVED);
291-
expect(splitsEmitSpy.mock.calls[index][1]).toEqual({ type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [payload.name] });
290+
expect(splitsEmitSpy.mock.calls[index][1]).toEqual({ type: FLAGS_UPDATE, names: [payload.name] });
292291
index++;
293292
}
294293

@@ -318,7 +317,7 @@ describe('splitChangesUpdater', () => {
318317

319318
await expect(splitChangesUpdater(undefined, undefined, { payload, changeNumber: changeNumber, type: SPLIT_UPDATE })).resolves.toBe(true);
320319

321-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [payload.name] });
320+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: [payload.name] });
322321
});
323322

324323
test('test with multiple flags updated - should emit metadata with all flag names', async () => {
@@ -337,7 +336,7 @@ describe('splitChangesUpdater', () => {
337336
await splitChangesUpdater();
338337

339338
// Should emit with metadata when splitsArrived is false (first update)
340-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: ['flag1', 'flag2', 'flag3'] });
339+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: ['flag1', 'flag2', 'flag3'] });
341340
});
342341

343342
test('test with ARCHIVED flag - should emit metadata with flag name', async () => {
@@ -356,7 +355,7 @@ describe('splitChangesUpdater', () => {
356355
await expect(splitChangesUpdater(undefined, undefined, { payload, changeNumber: changeNumber, type: SPLIT_UPDATE })).resolves.toBe(true);
357356

358357
// Should emit with metadata when splitsArrived is false (first update)
359-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: [payload.name] });
358+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: [payload.name] });
360359
});
361360

362361
test('test with rbsegment payload - should emit SEGMENTS_UPDATE not FLAGS_UPDATE', async () => {
@@ -370,7 +369,7 @@ describe('splitChangesUpdater', () => {
370369
await expect(splitChangesUpdater(undefined, undefined, { payload, changeNumber: changeNumber, type: RB_SEGMENT_UPDATE })).resolves.toBe(true);
371370

372371
// Should emit SEGMENTS_UPDATE (not FLAGS_UPDATE) when only RB segment is updated
373-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
372+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
374373
});
375374

376375
test('test with only RB segment update and no flags - should emit SEGMENTS_UPDATE', async () => {
@@ -385,7 +384,7 @@ describe('splitChangesUpdater', () => {
385384
await splitChangesUpdater();
386385

387386
// When updatedFlags.length === 0, should emit SEGMENTS_UPDATE
388-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
387+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
389388
});
390389

391390
test('test with both flags and RB segments updated - should emit FLAGS_UPDATE with flag names', async () => {
@@ -404,7 +403,7 @@ describe('splitChangesUpdater', () => {
404403
await splitChangesUpdater();
405404

406405
// When both flags and RB segments are updated, should emit FLAGS_UPDATE with flag names
407-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: ['flag1', 'flag2'] });
406+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: ['flag1', 'flag2'] });
408407
});
409408

410409
test('test client-side behavior - should emit even when segments not all fetched', async () => {
@@ -422,7 +421,7 @@ describe('splitChangesUpdater', () => {
422421
await clientSideUpdater();
423422

424423
// Client-side should emit even if segments aren't all fetched (isClientSide bypasses checkAllSegmentsExist)
425-
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: SdkUpdateMetadataKeys.FLAGS_UPDATE, names: ['client-flag'] });
424+
expect(splitsEmitSpy).toBeCalledWith(SDK_SPLITS_ARRIVED, { type: FLAGS_UPDATE, names: ['client-flag'] });
426425
});
427426

428427
});

src/sync/polling/updaters/mySegmentsUpdater.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ import { IMySegmentsFetcher } from '../fetchers/types';
22
import { IStorageSync } from '../../../storages/types';
33
import { ISegmentsEventEmitter } from '../../../readiness/types';
44
import { timeout } from '../../../utils/promise/timeout';
5-
import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
5+
import { SDK_SEGMENTS_ARRIVED, SEGMENTS_UPDATE } from '../../../readiness/constants';
66
import { ILogger } from '../../../logger/types';
77
import { SYNC_MYSEGMENTS_FETCH_RETRY } from '../../../logger/constants';
88
import { MySegmentsData } from '../types';
99
import { IMembershipsResponse } from '../../../dtos/types';
1010
import { MEMBERSHIPS_LS_UPDATE } from '../../streaming/constants';
1111
import { usesSegmentsSync } from '../../../storages/AbstractSplitsCacheSync';
12-
import { SdkUpdateMetadataKeys } from '../types';
1312

1413
type IMySegmentsUpdater = (segmentsData?: MySegmentsData, noCache?: boolean, till?: number) => Promise<boolean>
1514

@@ -57,7 +56,7 @@ export function mySegmentsUpdaterFactory(
5756
// Notify update if required
5857
if (usesSegmentsSync(storage) && (shouldNotifyUpdate || readyOnAlreadyExistentState)) {
5958
readyOnAlreadyExistentState = false;
60-
segmentsEventEmitter.emit(SDK_SEGMENTS_ARRIVED, { type: SdkUpdateMetadataKeys.SEGMENTS_UPDATE, names: [] });
59+
segmentsEventEmitter.emit(SDK_SEGMENTS_ARRIVED, { type: SEGMENTS_UPDATE, names: [] });
6160
}
6261
}
6362

0 commit comments

Comments
 (0)