@@ -75,13 +75,6 @@ type TrackEventCallArgs = [
75
75
* @implements {IOptimizelySDKWrapper}
76
76
*/
77
77
export class OptimizelySDKWrapper implements IOptimizelySDKWrapper {
78
- static featureVariableGetters = {
79
- string : 'getFeatureVariableString' ,
80
- double : 'getFeatureVariableDouble' ,
81
- boolean : 'getFeatureVariableBoolean' ,
82
- integer : 'getFeatureVariableInteger' ,
83
- }
84
-
85
78
static passthroughConfig : Array < keyof optimizely . Config > = [
86
79
'errorHandler' ,
87
80
'eventDispatcher' ,
@@ -289,12 +282,25 @@ export class OptimizelySDKWrapper implements IOptimizelySDKWrapper {
289
282
return { }
290
283
}
291
284
292
- const variableObj = { }
285
+ const variableObj : VariableValuesObject = { }
293
286
variableDefs . forEach ( ( { key, type } ) => {
294
- const variableGetFnName = OptimizelySDKWrapper . featureVariableGetters [ type ]
295
- const value = variableGetFnName ? this . instance [ variableGetFnName ] ( feature , key , userId , attributes ) : null
296
-
297
- variableObj [ key ] = value
287
+ switch ( type ) {
288
+ case 'string' :
289
+ variableObj [ key ] = this . instance . getFeatureVariableString ( feature , key , userId , attributes )
290
+ break ;
291
+
292
+ case 'boolean' :
293
+ variableObj [ key ] = this . instance . getFeatureVariableBoolean ( feature , key , userId , attributes )
294
+ break
295
+
296
+ case 'integer' :
297
+ variableObj [ key ] = this . instance . getFeatureVariableInteger ( feature , key , userId , attributes )
298
+ break
299
+
300
+ case 'double' :
301
+ variableObj [ key ] = this . instance . getFeatureVariableDouble ( feature , key , userId , attributes )
302
+ break
303
+ }
298
304
} )
299
305
300
306
return variableObj
@@ -490,19 +496,6 @@ export class OptimizelySDKWrapper implements IOptimizelySDKWrapper {
490
496
}
491
497
}
492
498
493
- /**
494
- * Get options passed in to initialConfig to instantiate every new client with
495
- */
496
- private getInstantiationOptions ( ) : Partial < { [ k in keyof optimizely . Config ] : any } > {
497
- const opts = { }
498
- OptimizelySDKWrapper . passthroughConfig . forEach ( key => {
499
- if ( this . initialConfig [ key ] ) {
500
- opts [ key ] = this . initialConfig [ key ]
501
- }
502
- } )
503
- return opts
504
- }
505
-
506
499
private onInitialized ( ) {
507
500
const datafile = this . resourceManager . datafile . value
508
501
this . userId = this . resourceManager . userId . value || null
@@ -518,8 +511,8 @@ export class OptimizelySDKWrapper implements IOptimizelySDKWrapper {
518
511
519
512
this . isInitialized = true
520
513
this . instance = optimizely . createInstance ( {
514
+ ...this . initialConfig ,
521
515
datafile : this . datafile ,
522
- ...this . getInstantiationOptions ( ) ,
523
516
} )
524
517
// TODO: make sure this is flushed after notification listeners can be added
525
518
this . flushTrackEventQueue ( )
0 commit comments