1
+ import ApiEndpoints from '../api-endpoints' ;
1
2
import { logger } from '../application-logger' ;
2
3
import {
3
4
AssignmentCache ,
@@ -165,7 +166,6 @@ export default class EppoClient implements IEppoClient {
165
166
private queuedEvents : IAssignmentEvent [ ] = [ ] ;
166
167
private assignmentLogger : IAssignmentLogger | undefined ;
167
168
private isGracefulFailureMode = true ;
168
- private isObfuscated = false ;
169
169
private assignmentCache : AssignmentCache < Cacheable > | undefined ;
170
170
private configurationStore : IConfigurationStore < Flag | ObfuscatedFlag > ;
171
171
private configurationRequestParameters : FlagConfigurationRequestParameters | undefined ;
@@ -175,12 +175,11 @@ export default class EppoClient implements IEppoClient {
175
175
constructor (
176
176
configurationStore : IConfigurationStore < Flag | ObfuscatedFlag > ,
177
177
configurationRequestParameters ?: FlagConfigurationRequestParameters ,
178
- obfuscated = false ,
178
+ private readonly isObfuscated = false ,
179
179
) {
180
180
this . evaluator = new Evaluator ( ) ;
181
181
this . configurationStore = configurationStore ;
182
182
this . configurationRequestParameters = configurationRequestParameters ;
183
- this . isObfuscated = obfuscated ;
184
183
}
185
184
186
185
public setConfigurationRequestParameters (
@@ -212,17 +211,22 @@ export default class EppoClient implements IEppoClient {
212
211
) ;
213
212
return ;
214
213
}
215
-
216
- // todo: consider injecting the IHttpClient interface
217
- const httpClient = new FetchHttpClient (
218
- this . configurationRequestParameters . baseUrl || DEFAULT_BASE_URL ,
219
- {
220
- apiKey : this . configurationRequestParameters . apiKey ,
221
- sdkName : this . configurationRequestParameters . sdkName ,
222
- sdkVersion : this . configurationRequestParameters . sdkVersion ,
223
- } ,
224
- this . configurationRequestParameters . requestTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS ,
225
- ) ;
214
+ const {
215
+ apiKey,
216
+ sdkName,
217
+ sdkVersion,
218
+ baseUrl = DEFAULT_BASE_URL ,
219
+ requestTimeoutMs = DEFAULT_REQUEST_TIMEOUT_MS ,
220
+ numInitialRequestRetries = DEFAULT_INITIAL_CONFIG_REQUEST_RETRIES ,
221
+ numPollRequestRetries = DEFAULT_POLL_CONFIG_REQUEST_RETRIES ,
222
+ pollAfterSuccessfulInitialization = false ,
223
+ pollAfterFailedInitialization = false ,
224
+ throwOnFailedInitialization = false ,
225
+ skipInitialPoll = false ,
226
+ } = this . configurationRequestParameters ;
227
+ // todo: Inject the chain of dependencies below
228
+ const apiEndpoints = new ApiEndpoints ( baseUrl , { apiKey, sdkName, sdkVersion } ) ;
229
+ const httpClient = new FetchHttpClient ( apiEndpoints , requestTimeoutMs ) ;
226
230
const configurationRequestor = new FlagConfigurationRequestor (
227
231
this . configurationStore ,
228
232
httpClient ,
@@ -232,19 +236,12 @@ export default class EppoClient implements IEppoClient {
232
236
POLL_INTERVAL_MS ,
233
237
configurationRequestor . fetchAndStoreConfigurations . bind ( configurationRequestor ) ,
234
238
{
235
- maxStartRetries :
236
- this . configurationRequestParameters . numInitialRequestRetries ??
237
- DEFAULT_INITIAL_CONFIG_REQUEST_RETRIES ,
238
- maxPollRetries :
239
- this . configurationRequestParameters . numPollRequestRetries ??
240
- DEFAULT_POLL_CONFIG_REQUEST_RETRIES ,
241
- pollAfterSuccessfulStart :
242
- this . configurationRequestParameters . pollAfterSuccessfulInitialization ?? false ,
243
- pollAfterFailedStart :
244
- this . configurationRequestParameters . pollAfterFailedInitialization ?? false ,
245
- errorOnFailedStart :
246
- this . configurationRequestParameters . throwOnFailedInitialization ?? false ,
247
- skipInitialPoll : this . configurationRequestParameters . skipInitialPoll ?? false ,
239
+ maxStartRetries : numInitialRequestRetries ,
240
+ maxPollRetries : numPollRequestRetries ,
241
+ pollAfterSuccessfulStart : pollAfterSuccessfulInitialization ,
242
+ pollAfterFailedStart : pollAfterFailedInitialization ,
243
+ errorOnFailedStart : throwOnFailedInitialization ,
244
+ skipInitialPoll : skipInitialPoll ,
248
245
} ,
249
246
) ;
250
247
@@ -390,11 +387,10 @@ export default class EppoClient implements IEppoClient {
390
387
* Note: This method is experimental and may change in future versions.
391
388
* Please only use for debugging purposes, and not in production.
392
389
*
393
- * @param subjectKey The subject key
394
390
* @param flagKey The flag key
391
+ * @param subjectKey The subject key
395
392
* @param subjectAttributes The subject attributes
396
393
* @param expectedVariationType The expected variation type
397
- * @param obfuscated Whether the flag key is obfuscated
398
394
* @returns A detailed return of assignment for a particular subject and flag
399
395
*/
400
396
public getAssignmentDetail (
0 commit comments