Skip to content

Commit abd99b7

Browse files
authored
feat: Create and export a type for the EppoClient constructor (#208)
* feat: make and export type for constructor parameters * export new type from package * minor bump to 4.9.0
1 parent 8ae88b9 commit abd99b7

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eppo/js-client-sdk-common",
3-
"version": "4.8.4",
3+
"version": "4.9.0",
44
"description": "Common library for Eppo JavaScript SDKs (web, react native, and node)",
55
"main": "dist/index.js",
66
"files": [

src/client/eppo-client.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,17 @@ export interface IContainerExperiment<T> {
9393
treatmentVariationEntries: Array<T>;
9494
}
9595

96+
export type EppoClientParameters = {
97+
// Dispatcher for arbitrary, application-level events (not to be confused with Eppo specific assignment
98+
// or bandit events). These events are application-specific and captures by EppoClient#track API.
99+
eventDispatcher?: EventDispatcher;
100+
flagConfigurationStore: IConfigurationStore<Flag | ObfuscatedFlag>;
101+
banditVariationConfigurationStore?: IConfigurationStore<BanditVariation[]>;
102+
banditModelConfigurationStore?: IConfigurationStore<BanditParameters>;
103+
configurationRequestParameters?: FlagConfigurationRequestParameters;
104+
isObfuscated?: boolean;
105+
};
106+
96107
export default class EppoClient {
97108
private eventDispatcher: EventDispatcher;
98109
private readonly assignmentEventsQueue: BoundedEventQueue<IAssignmentEvent> =
@@ -121,16 +132,7 @@ export default class EppoClient {
121132
banditVariationConfigurationStore,
122133
banditModelConfigurationStore,
123134
configurationRequestParameters,
124-
}: {
125-
// Dispatcher for arbitrary, application-level events (not to be confused with Eppo specific assignment
126-
// or bandit events). These events are application-specific and captures by EppoClient#track API.
127-
eventDispatcher?: EventDispatcher;
128-
flagConfigurationStore: IConfigurationStore<Flag | ObfuscatedFlag>;
129-
banditVariationConfigurationStore?: IConfigurationStore<BanditVariation[]>;
130-
banditModelConfigurationStore?: IConfigurationStore<BanditParameters>;
131-
configurationRequestParameters?: FlagConfigurationRequestParameters;
132-
isObfuscated?: boolean;
133-
}) {
135+
}: EppoClientParameters) {
134136
this.eventDispatcher = eventDispatcher;
135137
this.flagConfigurationStore = flagConfigurationStore;
136138
this.banditVariationConfigurationStore = banditVariationConfigurationStore;

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
import { LRUInMemoryAssignmentCache } from './cache/lru-in-memory-assignment-cache';
1717
import { NonExpiringInMemoryAssignmentCache } from './cache/non-expiring-in-memory-cache-assignment';
1818
import EppoClient, {
19+
EppoClientParameters,
1920
FlagConfigurationRequestParameters,
2021
IAssignmentDetails,
2122
IContainerExperiment,
@@ -84,6 +85,7 @@ export {
8485
IBanditLogger,
8586
IBanditEvent,
8687
IContainerExperiment,
88+
EppoClientParameters,
8789
EppoClient,
8890
constants,
8991
ApiEndpoints,

0 commit comments

Comments
 (0)