@@ -10,6 +10,8 @@ import NoOpEventDispatcher from './no-op-event-dispatcher';
10
10
import SdkKeyDecoder from './sdk-key-decoder' ;
11
11
12
12
export type EventDispatcherConfig = {
13
+ // The Eppo SDK key
14
+ sdkKey : string ;
13
15
// target url to deliver events to
14
16
ingestionUrl : string ;
15
17
// number of milliseconds to wait between each batch delivery
@@ -25,7 +27,10 @@ export type EventDispatcherConfig = {
25
27
// TODO: Have more realistic default batch size based on average event payload size once we have
26
28
// more concrete data.
27
29
export const DEFAULT_EVENT_DISPATCHER_BATCH_SIZE = 100 ;
28
- export const DEFAULT_EVENT_DISPATCHER_CONFIG : Omit < EventDispatcherConfig , 'ingestionUrl' > = {
30
+ export const DEFAULT_EVENT_DISPATCHER_CONFIG : Omit <
31
+ EventDispatcherConfig ,
32
+ 'ingestionUrl' | 'sdkKey'
33
+ > = {
29
34
deliveryIntervalMs : 10_000 ,
30
35
retryIntervalMs : 5_000 ,
31
36
maxRetryDelayMs : 30_000 ,
@@ -51,11 +56,12 @@ export default class DefaultEventDispatcher implements EventDispatcher {
51
56
config : EventDispatcherConfig ,
52
57
) {
53
58
this . ensureConfigFields ( config ) ;
54
- this . eventDelivery = new EventDelivery ( config . ingestionUrl ) ;
59
+ const { sdkKey, ingestionUrl, retryIntervalMs, maxRetryDelayMs, maxRetries = 3 } = config ;
60
+ this . eventDelivery = new EventDelivery ( sdkKey , ingestionUrl ) ;
55
61
this . retryManager = new BatchRetryManager ( this . eventDelivery , {
56
- retryIntervalMs : config . retryIntervalMs ,
57
- maxRetryDelayMs : config . maxRetryDelayMs ,
58
- maxRetries : config . maxRetries || 3 ,
62
+ retryIntervalMs,
63
+ maxRetryDelayMs,
64
+ maxRetries,
59
65
} ) ;
60
66
this . deliveryIntervalMs = config . deliveryIntervalMs ;
61
67
this . networkStatusListener . onNetworkStatusChange ( ( isOffline ) => {
@@ -134,7 +140,7 @@ export function newDefaultEventDispatcher(
134
140
networkStatusListener : NetworkStatusListener ,
135
141
sdkKey : string ,
136
142
batchSize : number = DEFAULT_EVENT_DISPATCHER_BATCH_SIZE ,
137
- config : Omit < EventDispatcherConfig , 'ingestionUrl' > = DEFAULT_EVENT_DISPATCHER_CONFIG ,
143
+ config : Omit < EventDispatcherConfig , 'ingestionUrl' | 'sdkKey' > = DEFAULT_EVENT_DISPATCHER_CONFIG ,
138
144
) : EventDispatcher {
139
145
const sdkKeyDecoder = new SdkKeyDecoder ( ) ;
140
146
const ingestionUrl = sdkKeyDecoder . decodeEventIngestionUrl ( sdkKey ) ;
@@ -147,6 +153,6 @@ export function newDefaultEventDispatcher(
147
153
return new DefaultEventDispatcher (
148
154
new BatchEventProcessor ( eventQueue , batchSize ) ,
149
155
networkStatusListener ,
150
- { ...config , ingestionUrl } ,
156
+ { ...config , ingestionUrl, sdkKey } ,
151
157
) ;
152
158
}
0 commit comments