1515 */
1616var fns = require ( '../../utils/fns' ) ;
1717var enums = require ( '../../utils/enums' ) ;
18- var sprintf = require ( '@optimizely/js-sdk-utils' ) . sprintf ;
18+ var jsSdkUtils = require ( '@optimizely/js-sdk-utils' ) ;
1919var configValidator = require ( '../../utils/config_validator' ) ;
2020var projectConfigSchema = require ( './project_config_schema' ) ;
2121
@@ -60,7 +60,7 @@ module.exports = {
6060 } ) ;
6161
6262 projectConfig . rolloutIdMap = fns . keyBy ( projectConfig . rollouts || [ ] , 'id' ) ;
63- fns . forOwn ( projectConfig . rolloutIdMap , function ( rollout ) {
63+ jsSdkUtils . objectValues ( projectConfig . rolloutIdMap || { } ) . forEach ( function ( rollout ) {
6464 ( rollout . experiments || [ ] ) . forEach ( function ( experiment ) {
6565 projectConfig . experiments . push ( fns . cloneDeep ( experiment ) ) ;
6666 // Creates { <variationKey>: <variation> } map inside of the experiment
@@ -79,8 +79,7 @@ module.exports = {
7979
8080 // Creates { <variationId>: { key: <variationKey>, id: <variationId> } } mapping for quick lookup
8181 fns . assign ( projectConfig . variationIdMap , fns . keyBy ( experiment . variations , 'id' ) ) ;
82-
83- fns . forOwn ( experiment . variationKeyMap , function ( variation ) {
82+ jsSdkUtils . objectValues ( experiment . variationKeyMap || { } ) . forEach ( function ( variation ) {
8483 if ( variation . variables ) {
8584 projectConfig . variationVariableUsageMap [ variation . id ] = fns . keyBy ( variation . variables , 'id' ) ;
8685 }
@@ -92,7 +91,7 @@ module.exports = {
9291 projectConfig . experimentFeatureMap = { } ;
9392
9493 projectConfig . featureKeyMap = fns . keyBy ( projectConfig . featureFlags || [ ] , 'key' ) ;
95- fns . forOwn ( projectConfig . featureKeyMap , function ( feature ) {
94+ jsSdkUtils . objectValues ( projectConfig . featureKeyMap || { } ) . forEach ( function ( feature ) {
9695 feature . variableKeyMap = fns . keyBy ( feature . variables , 'key' ) ;
9796 ( feature . experimentIds || [ ] ) . forEach ( function ( experimentId ) {
9897 // Add this experiment in experiment-feature map.
@@ -123,7 +122,7 @@ module.exports = {
123122 getExperimentId : function ( projectConfig , experimentKey ) {
124123 var experiment = projectConfig . experimentKeyMap [ experimentKey ] ;
125124 if ( ! experiment ) {
126- throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
125+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
127126 }
128127 return experiment . id ;
129128 } ,
@@ -138,7 +137,7 @@ module.exports = {
138137 getLayerId : function ( projectConfig , experimentId ) {
139138 var experiment = projectConfig . experimentIdMap [ experimentId ] ;
140139 if ( ! experiment ) {
141- throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_ID , MODULE_NAME , experimentId ) ) ;
140+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_ID , MODULE_NAME , experimentId ) ) ;
142141 }
143142 return experiment . layerId ;
144143 } ,
@@ -156,14 +155,14 @@ module.exports = {
156155 if ( attribute ) {
157156 if ( hasReservedPrefix ) {
158157 logger . log ( LOG_LEVEL . WARN ,
159- sprintf ( 'Attribute %s unexpectedly has reserved prefix %s; using attribute ID instead of reserved attribute name.' , attributeKey , RESERVED_ATTRIBUTE_PREFIX ) ) ;
158+ jsSdkUtils . sprintf ( 'Attribute %s unexpectedly has reserved prefix %s; using attribute ID instead of reserved attribute name.' , attributeKey , RESERVED_ATTRIBUTE_PREFIX ) ) ;
160159 }
161160 return attribute . id ;
162161 } else if ( hasReservedPrefix ) {
163162 return attributeKey ;
164163 }
165164
166- logger . log ( LOG_LEVEL . DEBUG , sprintf ( ERROR_MESSAGES . UNRECOGNIZED_ATTRIBUTE , MODULE_NAME , attributeKey ) ) ;
165+ logger . log ( LOG_LEVEL . DEBUG , jsSdkUtils . sprintf ( ERROR_MESSAGES . UNRECOGNIZED_ATTRIBUTE , MODULE_NAME , attributeKey ) ) ;
167166 return null ;
168167 } ,
169168
@@ -191,7 +190,7 @@ module.exports = {
191190 getExperimentStatus : function ( projectConfig , experimentKey ) {
192191 var experiment = projectConfig . experimentKeyMap [ experimentKey ] ;
193192 if ( ! experiment ) {
194- throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
193+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
195194 }
196195 return experiment . status ;
197196 } ,
@@ -225,7 +224,7 @@ module.exports = {
225224 getExperimentAudienceConditions : function ( projectConfig , experimentKey ) {
226225 var experiment = projectConfig . experimentKeyMap [ experimentKey ] ;
227226 if ( ! experiment ) {
228- throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
227+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
229228 }
230229
231230 return experiment . audienceConditions || experiment . audienceIds ;
@@ -274,7 +273,7 @@ module.exports = {
274273 }
275274 }
276275
277- throw new Error ( sprintf ( ERROR_MESSAGES . EXPERIMENT_KEY_NOT_IN_DATAFILE , MODULE_NAME , experimentKey ) ) ;
276+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . EXPERIMENT_KEY_NOT_IN_DATAFILE , MODULE_NAME , experimentKey ) ) ;
278277 } ,
279278
280279 /**
@@ -287,7 +286,7 @@ module.exports = {
287286 getTrafficAllocation : function ( projectConfig , experimentKey ) {
288287 var experiment = projectConfig . experimentKeyMap [ experimentKey ] ;
289288 if ( ! experiment ) {
290- throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
289+ throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey ) ) ;
291290 }
292291 return experiment . trafficAllocation ;
293292 } ,
@@ -307,7 +306,7 @@ module.exports = {
307306 }
308307 }
309308
310- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_ID , MODULE_NAME , experimentId ) ) ;
309+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_ID , MODULE_NAME , experimentId ) ) ;
311310 return null ;
312311 } ,
313312
@@ -328,7 +327,7 @@ module.exports = {
328327 }
329328 }
330329
331- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . FEATURE_NOT_IN_DATAFILE , MODULE_NAME , featureKey ) ) ;
330+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . FEATURE_NOT_IN_DATAFILE , MODULE_NAME , featureKey ) ) ;
332331 return null ;
333332 } ,
334333
@@ -346,13 +345,13 @@ module.exports = {
346345 getVariableForFeature : function ( projectConfig , featureKey , variableKey , logger ) {
347346 var feature = projectConfig . featureKeyMap [ featureKey ] ;
348347 if ( ! feature ) {
349- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . FEATURE_NOT_IN_DATAFILE , MODULE_NAME , featureKey ) ) ;
348+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . FEATURE_NOT_IN_DATAFILE , MODULE_NAME , featureKey ) ) ;
350349 return null ;
351350 }
352351
353352 var variable = feature . variableKeyMap [ variableKey ] ;
354353 if ( ! variable ) {
355- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . VARIABLE_KEY_NOT_IN_DATAFILE , MODULE_NAME , variableKey , featureKey ) ) ;
354+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . VARIABLE_KEY_NOT_IN_DATAFILE , MODULE_NAME , variableKey , featureKey ) ) ;
356355 return null ;
357356 }
358357
@@ -377,7 +376,7 @@ module.exports = {
377376 }
378377
379378 if ( ! projectConfig . variationVariableUsageMap . hasOwnProperty ( variation . id ) ) {
380- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . VARIATION_ID_NOT_IN_DATAFILE_NO_EXPERIMENT , MODULE_NAME , variation . id ) ) ;
379+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . VARIATION_ID_NOT_IN_DATAFILE_NO_EXPERIMENT , MODULE_NAME , variation . id ) ) ;
381380 return null ;
382381 }
383382
@@ -409,7 +408,7 @@ module.exports = {
409408 switch ( variableType ) {
410409 case FEATURE_VARIABLE_TYPES . BOOLEAN :
411410 if ( variableValue !== 'true' && variableValue !== 'false' ) {
412- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
411+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
413412 castValue = null ;
414413 } else {
415414 castValue = variableValue === 'true' ;
@@ -419,15 +418,15 @@ module.exports = {
419418 case FEATURE_VARIABLE_TYPES . INTEGER :
420419 castValue = parseInt ( variableValue , 10 ) ;
421420 if ( isNaN ( castValue ) ) {
422- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
421+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
423422 castValue = null ;
424423 }
425424 break ;
426425
427426 case FEATURE_VARIABLE_TYPES . DOUBLE :
428427 castValue = parseFloat ( variableValue ) ;
429428 if ( isNaN ( castValue ) ) {
430- logger . log ( LOG_LEVEL . ERROR , sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
429+ logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( ERROR_MESSAGES . UNABLE_TO_CAST_VALUE , MODULE_NAME , variableValue , variableType ) ) ;
431430 castValue = null ;
432431 }
433432 break ;
@@ -485,10 +484,10 @@ module.exports = {
485484 tryCreatingProjectConfig : function ( config ) {
486485 configValidator . validateDatafile ( config . datafile ) ;
487486 if ( config . skipJSONValidation === true ) {
488- config . logger . log ( LOG_LEVEL . INFO , sprintf ( LOG_MESSAGES . SKIPPING_JSON_VALIDATION , MODULE_NAME ) ) ;
487+ config . logger . log ( LOG_LEVEL . INFO , jsSdkUtils . sprintf ( LOG_MESSAGES . SKIPPING_JSON_VALIDATION , MODULE_NAME ) ) ;
489488 } else if ( config . jsonSchemaValidator ) {
490489 config . jsonSchemaValidator . validate ( projectConfigSchema , config . datafile ) ;
491- config . logger . log ( LOG_LEVEL . INFO , sprintf ( LOG_MESSAGES . VALID_DATAFILE , MODULE_NAME ) ) ;
490+ config . logger . log ( LOG_LEVEL . INFO , jsSdkUtils . sprintf ( LOG_MESSAGES . VALID_DATAFILE , MODULE_NAME ) ) ;
492491 }
493492 return module . exports . createProjectConfig ( config . datafile ) ;
494493 } ,
0 commit comments