Skip to content

Commit ef651cc

Browse files
Fix types
1 parent a719bb7 commit ef651cc

File tree

3 files changed

+27
-23
lines changed

3 files changed

+27
-23
lines changed

src/readiness/__tests__/readinessManager.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { EventEmitter } from '../../utils/MinEvents';
33
import { IReadinessManager } from '../types';
44
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';
55
import { ISettings } from '../../types';
6-
import { EventMetadata, SdkUpdateMetadataKeys } from '../../sync/polling/types';
6+
import { SdkUpdateMetadata, SdkUpdateMetadataKeys } from '../../sync/polling/types';
77

88
const settings = {
99
startup: {
@@ -309,12 +309,12 @@ test('READINESS MANAGER / SDK_UPDATE should emit with metadata', () => {
309309
readinessManager.splits.emit(SDK_SPLITS_ARRIVED);
310310
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
311311

312-
const metadata: EventMetadata = {
312+
const metadata: SdkUpdateMetadata = {
313313
[SdkUpdateMetadataKeys.UPDATED_FLAGS]: ['flag1', 'flag2']
314314
};
315315

316-
let receivedMetadata: EventMetadata | undefined;
317-
readinessManager.gate.on(SDK_UPDATE, (meta: EventMetadata) => {
316+
let receivedMetadata: SdkUpdateMetadata | undefined;
317+
readinessManager.gate.on(SDK_UPDATE, (meta: SdkUpdateMetadata) => {
318318
receivedMetadata = meta;
319319
});
320320

@@ -331,7 +331,7 @@ test('READINESS MANAGER / SDK_UPDATE should handle undefined metadata', () => {
331331
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
332332

333333
let receivedMetadata: any;
334-
readinessManager.gate.on(SDK_UPDATE, (meta: EventMetadata) => {
334+
readinessManager.gate.on(SDK_UPDATE, (meta: SdkUpdateMetadata) => {
335335
receivedMetadata = meta;
336336
});
337337

@@ -347,12 +347,12 @@ test('READINESS MANAGER / SDK_UPDATE should forward metadata from segments', ()
347347
readinessManager.splits.emit(SDK_SPLITS_ARRIVED);
348348
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
349349

350-
const metadata: EventMetadata = {
350+
const metadata: SdkUpdateMetadata = {
351351
[SdkUpdateMetadataKeys.UPDATED_SEGMENTS]: ['segment1', 'segment2']
352352
};
353353

354-
let receivedMetadata: EventMetadata | undefined;
355-
readinessManager.gate.on(SDK_UPDATE, (meta: EventMetadata) => {
354+
let receivedMetadata: SdkUpdateMetadata | undefined;
355+
readinessManager.gate.on(SDK_UPDATE, (meta: SdkUpdateMetadata) => {
356356
receivedMetadata = meta;
357357
});
358358

src/readiness/types.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
import SplitIO from '../../types/splitio';
2+
import { SdkUpdateMetadata } from '../sync/polling/types';
23

4+
/** Readiness event types */
5+
6+
export type SDK_READY_TIMED_OUT = 'init::timeout'
7+
export type SDK_READY = 'init::ready'
8+
export type SDK_READY_FROM_CACHE = 'init::cache-ready'
9+
export type SDK_UPDATE = 'state::update'
10+
export type SDK_DESTROY = 'state::destroy'
11+
12+
export type IReadinessEvent = SDK_READY_TIMED_OUT | SDK_READY | SDK_READY_FROM_CACHE | SDK_UPDATE | SDK_DESTROY
13+
14+
export interface IReadinessEventEmitter extends SplitIO.IEventEmitter {
15+
emit(event: IReadinessEvent, ...args: any[]): boolean
16+
}
317
/** Splits data emitter */
418

519
type SDK_SPLITS_ARRIVED = 'state::splits-arrived'
@@ -9,6 +23,7 @@ type ISplitsEvent = SDK_SPLITS_ARRIVED | SDK_SPLITS_CACHE_LOADED
923
export interface ISplitsEventEmitter extends SplitIO.IEventEmitter {
1024
emit(event: ISplitsEvent, ...args: any[]): boolean
1125
on(event: ISplitsEvent, listener: (...args: any[]) => void): this;
26+
on(event: SDK_UPDATE, listener: (metadata: SdkUpdateMetadata) => void): this;
1227
once(event: ISplitsEvent, listener: (...args: any[]) => void): this;
1328
splitsArrived: boolean
1429
splitsCacheLoaded: boolean
@@ -24,23 +39,11 @@ type ISegmentsEvent = SDK_SEGMENTS_ARRIVED
2439
export interface ISegmentsEventEmitter extends SplitIO.IEventEmitter {
2540
emit(event: ISegmentsEvent, ...args: any[]): boolean
2641
on(event: ISegmentsEvent, listener: (...args: any[]) => void): this;
42+
on(event: SDK_UPDATE, listener: (metadata: SdkUpdateMetadata) => void): this;
2743
once(event: ISegmentsEvent, listener: (...args: any[]) => void): this;
2844
segmentsArrived: boolean
2945
}
3046

31-
/** Readiness emitter */
32-
33-
export type SDK_READY_TIMED_OUT = 'init::timeout'
34-
export type SDK_READY = 'init::ready'
35-
export type SDK_READY_FROM_CACHE = 'init::cache-ready'
36-
export type SDK_UPDATE = 'state::update'
37-
export type SDK_DESTROY = 'state::destroy'
38-
export type IReadinessEvent = SDK_READY_TIMED_OUT | SDK_READY | SDK_READY_FROM_CACHE | SDK_UPDATE | SDK_DESTROY
39-
40-
export interface IReadinessEventEmitter extends SplitIO.IEventEmitter {
41-
emit(event: IReadinessEvent, ...args: any[]): boolean
42-
}
43-
4447
/** Readiness manager */
4548

4649
export interface IReadinessManager {

src/sync/streaming/types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { IMembershipMSUpdateData, IMembershipLSUpdateData, ISegmentUpdateData, ISplitUpdateData, ISplitKillData, INotificationData } from './SSEHandler/types';
22
import { ITask } from '../types';
3-
import { IMySegmentsSyncTask } from '../polling/types';
3+
import { IMySegmentsSyncTask, SdkUpdateMetadata } from '../polling/types';
44
import SplitIO from '../../../types/splitio';
55
import { ControlType } from './constants';
6+
import { SDK_UPDATE } from '../../readiness/types';
67

78
// Internal SDK events, subscribed by SyncManager and PushManager
89
export type PUSH_SUBSYSTEM_UP = 'PUSH_SUBSYSTEM_UP'
@@ -37,7 +38,7 @@ type IParsedData<T extends IPushEvent> =
3738
*/
3839
export interface IPushEventEmitter extends SplitIO.IEventEmitter {
3940
once<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T>) => void): this;
40-
on<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T>) => void): this;
41+
on<T extends IPushEvent>(event: T, listener: (metadata: T extends SDK_UPDATE ? SdkUpdateMetadata : never) => void): this;
4142
emit<T extends IPushEvent>(event: T, parsedData?: IParsedData<T>): boolean;
4243
}
4344

0 commit comments

Comments
 (0)