1
1
/****************************************************************************
2
- * Copyright 2016-2019 , Optimizely, Inc. and contributors *
2
+ * Copyright 2016-2020 , Optimizely, Inc. and contributors *
3
3
* *
4
4
* Licensed under the Apache License, Version 2.0 (the "License"); *
5
5
* you may not use this file except in compliance with the License. *
13
13
* See the License for the specific language governing permissions and *
14
14
* limitations under the License. *
15
15
***************************************************************************/
16
-
17
- var fns = require ( '../utils/fns' ) ;
18
- var attributesValidator = require ( '../utils/attributes_validator' ) ;
19
- var decisionService = require ( '../core/decision_service' ) ;
20
- var enums = require ( '../utils/enums' ) ;
21
- var eventBuilder = require ( '../core/event_builder/index.js' ) ;
22
- var eventHelpers = require ( '../core/event_builder/event_helpers' ) ;
23
- var eventProcessor = require ( '@optimizely/js-sdk-event-processor' ) ;
24
- var eventTagsValidator = require ( '../utils/event_tags_validator' ) ;
25
- var notificationCenter = require ( '../core/notification_center' ) ;
26
- var projectConfig = require ( '../core/project_config' ) ;
27
- var jsSdkUtils = require ( '@optimizely/js-sdk-utils' ) ;
28
- var userProfileServiceValidator = require ( '../utils/user_profile_service_validator' ) ;
29
- var stringValidator = require ( '../utils/string_value_validator' ) ;
30
- var projectConfigManager = require ( '../core/project_config/project_config_manager' ) ;
16
+ import { sprintf , objectValues } from '@optimizely/js-sdk-utils' ;
17
+ import * as eventProcessor from '@optimizely/js-sdk-event-processor' ;
18
+
19
+ import fns from '../utils/fns'
20
+ import attributesValidator from '../utils/attributes_validator' ;
21
+ import decisionService from '../core/decision_service' ;
22
+ import enums from '../utils/enums' ;
23
+ import eventBuilder from '../core/event_builder/index.js' ;
24
+ import eventHelpers from '../core/event_builder/event_helpers' ;
25
+ import eventTagsValidator from '../utils/event_tags_validator' ;
26
+ import notificationCenter from '../core/notification_center' ;
27
+ import projectConfig from '../core/project_config' ;
28
+ import userProfileServiceValidator from '../utils/user_profile_service_validator' ;
29
+ import stringValidator from '../utils/string_value_validator' ;
30
+ import projectConfigManager from '../core/project_config/project_config_manager' ;
31
31
32
32
var ERROR_MESSAGES = enums . ERROR_MESSAGES ;
33
33
var LOG_LEVEL = enums . LOG_LEVEL ;
@@ -58,7 +58,7 @@ function Optimizely(config) {
58
58
if ( enums . VALID_CLIENT_ENGINES . indexOf ( clientEngine ) === - 1 ) {
59
59
config . logger . log (
60
60
LOG_LEVEL . INFO ,
61
- jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_CLIENT_ENGINE , MODULE_NAME , clientEngine )
61
+ sprintf ( LOG_MESSAGES . INVALID_CLIENT_ENGINE , MODULE_NAME , clientEngine )
62
62
) ;
63
63
clientEngine = enums . NODE_CLIENT_ENGINE ;
64
64
}
@@ -81,7 +81,7 @@ function Optimizely(config) {
81
81
function ( configObj ) {
82
82
this . logger . log (
83
83
LOG_LEVEL . INFO ,
84
- jsSdkUtils . sprintf ( LOG_MESSAGES . UPDATED_OPTIMIZELY_CONFIG , MODULE_NAME , configObj . revision , configObj . projectId )
84
+ sprintf ( LOG_MESSAGES . UPDATED_OPTIMIZELY_CONFIG , MODULE_NAME , configObj . revision , configObj . projectId )
85
85
) ;
86
86
this . notificationCenter . sendNotifications ( NOTIFICATION_TYPES . OPTIMIZELY_CONFIG_UPDATE ) ;
87
87
} . bind ( this )
@@ -94,7 +94,7 @@ function Optimizely(config) {
94
94
try {
95
95
if ( userProfileServiceValidator . validate ( config . userProfileService ) ) {
96
96
userProfileService = config . userProfileService ;
97
- this . logger . log ( LOG_LEVEL . INFO , jsSdkUtils . sprintf ( LOG_MESSAGES . VALID_USER_PROFILE_SERVICE , MODULE_NAME ) ) ;
97
+ this . logger . log ( LOG_LEVEL . INFO , sprintf ( LOG_MESSAGES . VALID_USER_PROFILE_SERVICE , MODULE_NAME ) ) ;
98
98
}
99
99
} catch ( ex ) {
100
100
this . logger . log ( LOG_LEVEL . WARNING , ex . message ) ;
@@ -144,7 +144,7 @@ Optimizely.prototype.__isValidInstance = function() {
144
144
Optimizely . prototype . activate = function ( experimentKey , userId , attributes ) {
145
145
try {
146
146
if ( ! this . __isValidInstance ( ) ) {
147
- this . logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'activate' ) ) ;
147
+ this . logger . log ( LOG_LEVEL . ERROR , sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'activate' ) ) ;
148
148
return null ;
149
149
}
150
150
@@ -165,7 +165,7 @@ Optimizely.prototype.activate = function(experimentKey, userId, attributes) {
165
165
166
166
// If experiment is not set to 'Running' status, log accordingly and return variation key
167
167
if ( ! projectConfig . isRunning ( configObj , experimentKey ) ) {
168
- var shouldNotDispatchActivateLogMessage = jsSdkUtils . sprintf (
168
+ var shouldNotDispatchActivateLogMessage = sprintf (
169
169
LOG_MESSAGES . SHOULD_NOT_DISPATCH_ACTIVATE ,
170
170
MODULE_NAME ,
171
171
experimentKey
@@ -179,7 +179,7 @@ Optimizely.prototype.activate = function(experimentKey, userId, attributes) {
179
179
return variationKey ;
180
180
} catch ( ex ) {
181
181
this . logger . log ( LOG_LEVEL . ERROR , ex . message ) ;
182
- var failedActivationLogMessage = jsSdkUtils . sprintf (
182
+ var failedActivationLogMessage = sprintf (
183
183
LOG_MESSAGES . NOT_ACTIVATING_USER ,
184
184
MODULE_NAME ,
185
185
userId ,
@@ -275,7 +275,7 @@ Optimizely.prototype.__emitNotificationCenterActivate = function(experimentKey,
275
275
Optimizely . prototype . track = function ( eventKey , userId , attributes , eventTags ) {
276
276
try {
277
277
if ( ! this . __isValidInstance ( ) ) {
278
- this . logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'track' ) ) ;
278
+ this . logger . log ( LOG_LEVEL . ERROR , sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'track' ) ) ;
279
279
return ;
280
280
}
281
281
@@ -291,9 +291,9 @@ Optimizely.prototype.track = function(eventKey, userId, attributes, eventTags) {
291
291
if ( ! projectConfig . eventWithKeyExists ( configObj , eventKey ) ) {
292
292
this . logger . log (
293
293
LOG_LEVEL . WARNING ,
294
- jsSdkUtils . sprintf ( enums . LOG_MESSAGES . EVENT_KEY_NOT_FOUND , MODULE_NAME , eventKey )
294
+ sprintf ( enums . LOG_MESSAGES . EVENT_KEY_NOT_FOUND , MODULE_NAME , eventKey )
295
295
) ;
296
- this . logger . log ( LOG_LEVEL . WARNING , jsSdkUtils . sprintf ( LOG_MESSAGES . NOT_TRACKING_USER , MODULE_NAME , userId ) ) ;
296
+ this . logger . log ( LOG_LEVEL . WARNING , sprintf ( LOG_MESSAGES . NOT_TRACKING_USER , MODULE_NAME , userId ) ) ;
297
297
return ;
298
298
}
299
299
@@ -308,14 +308,14 @@ Optimizely.prototype.track = function(eventKey, userId, attributes, eventTags) {
308
308
clientVersion : this . clientVersion ,
309
309
configObj : configObj ,
310
310
} ) ;
311
- this . logger . log ( LOG_LEVEL . INFO , jsSdkUtils . sprintf ( enums . LOG_MESSAGES . TRACK_EVENT , MODULE_NAME , eventKey , userId ) ) ;
311
+ this . logger . log ( LOG_LEVEL . INFO , sprintf ( enums . LOG_MESSAGES . TRACK_EVENT , MODULE_NAME , eventKey , userId ) ) ;
312
312
// TODO is it okay to not pass a projectConfig as second argument
313
313
this . eventProcessor . process ( conversionEvent ) ;
314
314
this . __emitNotificationCenterTrack ( eventKey , userId , attributes , eventTags ) ;
315
315
} catch ( e ) {
316
316
this . logger . log ( LOG_LEVEL . ERROR , e . message ) ;
317
317
this . errorHandler . handleError ( e ) ;
318
- var failedTrackLogMessage = jsSdkUtils . sprintf ( LOG_MESSAGES . NOT_TRACKING_USER , MODULE_NAME , userId ) ;
318
+ var failedTrackLogMessage = sprintf ( LOG_MESSAGES . NOT_TRACKING_USER , MODULE_NAME , userId ) ;
319
319
this . logger . log ( LOG_LEVEL . ERROR , failedTrackLogMessage ) ;
320
320
}
321
321
} ;
@@ -369,7 +369,7 @@ Optimizely.prototype.__emitNotificationCenterTrack = function(eventKey, userId,
369
369
Optimizely . prototype . getVariation = function ( experimentKey , userId , attributes ) {
370
370
try {
371
371
if ( ! this . __isValidInstance ( ) ) {
372
- this . logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'getVariation' ) ) ;
372
+ this . logger . log ( LOG_LEVEL . ERROR , sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'getVariation' ) ) ;
373
373
return null ;
374
374
}
375
375
@@ -387,7 +387,7 @@ Optimizely.prototype.getVariation = function(experimentKey, userId, attributes)
387
387
if ( ! experiment ) {
388
388
this . logger . log (
389
389
LOG_LEVEL . DEBUG ,
390
- jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey )
390
+ sprintf ( ERROR_MESSAGES . INVALID_EXPERIMENT_KEY , MODULE_NAME , experimentKey )
391
391
) ;
392
392
return null ;
393
393
}
@@ -485,7 +485,7 @@ Optimizely.prototype.__validateInputs = function(stringInputs, userAttributes, e
485
485
if ( stringInputs . hasOwnProperty ( 'user_id' ) ) {
486
486
var userId = stringInputs . user_id ;
487
487
if ( typeof userId !== 'string' || userId === null || userId === 'undefined' ) {
488
- throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_INPUT_FORMAT , MODULE_NAME , 'user_id' ) ) ;
488
+ throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_INPUT_FORMAT , MODULE_NAME , 'user_id' ) ) ;
489
489
}
490
490
491
491
delete stringInputs . user_id ;
@@ -495,7 +495,7 @@ Optimizely.prototype.__validateInputs = function(stringInputs, userAttributes, e
495
495
for ( var index = 0 ; index < inputKeys . length ; index ++ ) {
496
496
var key = inputKeys [ index ] ;
497
497
if ( ! stringValidator . validate ( stringInputs [ key ] ) ) {
498
- throw new Error ( jsSdkUtils . sprintf ( ERROR_MESSAGES . INVALID_INPUT_FORMAT , MODULE_NAME , key ) ) ;
498
+ throw new Error ( sprintf ( ERROR_MESSAGES . INVALID_INPUT_FORMAT , MODULE_NAME , key ) ) ;
499
499
}
500
500
}
501
501
if ( userAttributes ) {
@@ -519,7 +519,7 @@ Optimizely.prototype.__validateInputs = function(stringInputs, userAttributes, e
519
519
* @return {null }
520
520
*/
521
521
Optimizely . prototype . __notActivatingExperiment = function ( experimentKey , userId ) {
522
- var failedActivationLogMessage = jsSdkUtils . sprintf (
522
+ var failedActivationLogMessage = sprintf (
523
523
LOG_MESSAGES . NOT_ACTIVATING_USER ,
524
524
MODULE_NAME ,
525
525
userId ,
@@ -555,7 +555,7 @@ Optimizely.prototype.isFeatureEnabled = function(featureKey, userId, attributes)
555
555
if ( ! this . __isValidInstance ( ) ) {
556
556
this . logger . log (
557
557
LOG_LEVEL . ERROR ,
558
- jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'isFeatureEnabled' )
558
+ sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'isFeatureEnabled' )
559
559
) ;
560
560
return false ;
561
561
}
@@ -594,12 +594,12 @@ Optimizely.prototype.isFeatureEnabled = function(featureKey, userId, attributes)
594
594
if ( featureEnabled === true ) {
595
595
this . logger . log (
596
596
LOG_LEVEL . INFO ,
597
- jsSdkUtils . sprintf ( LOG_MESSAGES . FEATURE_ENABLED_FOR_USER , MODULE_NAME , featureKey , userId )
597
+ sprintf ( LOG_MESSAGES . FEATURE_ENABLED_FOR_USER , MODULE_NAME , featureKey , userId )
598
598
) ;
599
599
} else {
600
600
this . logger . log (
601
601
LOG_LEVEL . INFO ,
602
- jsSdkUtils . sprintf ( LOG_MESSAGES . FEATURE_NOT_ENABLED_FOR_USER , MODULE_NAME , featureKey , userId )
602
+ sprintf ( LOG_MESSAGES . FEATURE_NOT_ENABLED_FOR_USER , MODULE_NAME , featureKey , userId )
603
603
) ;
604
604
featureEnabled = false ;
605
605
}
@@ -639,7 +639,7 @@ Optimizely.prototype.getEnabledFeatures = function(userId, attributes) {
639
639
if ( ! this . __isValidInstance ( ) ) {
640
640
this . logger . log (
641
641
LOG_LEVEL . ERROR ,
642
- jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'getEnabledFeatures' )
642
+ sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , 'getEnabledFeatures' )
643
643
) ;
644
644
return enabledFeatures ;
645
645
}
@@ -653,7 +653,7 @@ Optimizely.prototype.getEnabledFeatures = function(userId, attributes) {
653
653
return enabledFeatures ;
654
654
}
655
655
656
- jsSdkUtils . objectValues ( configObj . featureKeyMap ) . forEach (
656
+ objectValues ( configObj . featureKeyMap ) . forEach (
657
657
function ( feature ) {
658
658
if ( this . isFeatureEnabled ( feature . key , userId , attributes ) ) {
659
659
enabledFeatures . push ( feature . key ) ;
@@ -721,7 +721,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
721
721
var apiName = variableType
722
722
? 'getFeatureVariable' + variableType . charAt ( 0 ) . toUpperCase ( ) + variableType . slice ( 1 )
723
723
: 'getFeatureVariable' ;
724
- this . logger . log ( LOG_LEVEL . ERROR , jsSdkUtils . sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , apiName ) ) ;
724
+ this . logger . log ( LOG_LEVEL . ERROR , sprintf ( LOG_MESSAGES . INVALID_OBJECT , MODULE_NAME , apiName ) ) ;
725
725
return null ;
726
726
}
727
727
@@ -749,7 +749,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
749
749
} else if ( variable . type !== variableType ) {
750
750
this . logger . log (
751
751
LOG_LEVEL . WARNING ,
752
- jsSdkUtils . sprintf ( LOG_MESSAGES . VARIABLE_REQUESTED_WITH_WRONG_TYPE , MODULE_NAME , variableType , variable . type )
752
+ sprintf ( LOG_MESSAGES . VARIABLE_REQUESTED_WITH_WRONG_TYPE , MODULE_NAME , variableType , variable . type )
753
753
) ;
754
754
return null ;
755
755
}
@@ -766,7 +766,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
766
766
variableValue = value ;
767
767
this . logger . log (
768
768
LOG_LEVEL . INFO ,
769
- jsSdkUtils . sprintf (
769
+ sprintf (
770
770
LOG_MESSAGES . USER_RECEIVED_VARIABLE_VALUE ,
771
771
MODULE_NAME ,
772
772
variableKey ,
@@ -778,7 +778,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
778
778
} else {
779
779
this . logger . log (
780
780
LOG_LEVEL . INFO ,
781
- jsSdkUtils . sprintf (
781
+ sprintf (
782
782
LOG_MESSAGES . FEATURE_NOT_ENABLED_RETURN_DEFAULT_VARIABLE_VALUE ,
783
783
MODULE_NAME ,
784
784
featureFlag . key ,
@@ -790,7 +790,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
790
790
} else {
791
791
this . logger . log (
792
792
LOG_LEVEL . INFO ,
793
- jsSdkUtils . sprintf (
793
+ sprintf (
794
794
LOG_MESSAGES . VARIABLE_NOT_USED_RETURN_DEFAULT_VARIABLE_VALUE ,
795
795
MODULE_NAME ,
796
796
variableKey ,
@@ -801,7 +801,7 @@ Optimizely.prototype._getFeatureVariableForType = function(featureKey, variableK
801
801
} else {
802
802
this . logger . log (
803
803
LOG_LEVEL . INFO ,
804
- jsSdkUtils . sprintf (
804
+ sprintf (
805
805
LOG_MESSAGES . USER_RECEIVED_DEFAULT_VARIABLE_VALUE ,
806
806
MODULE_NAME ,
807
807
userId ,
@@ -1103,7 +1103,7 @@ Optimizely.prototype.onReady = function(options) {
1103
1103
delete this . __readyTimeouts [ timeoutId ] ;
1104
1104
resolveTimeoutPromise ( {
1105
1105
success : false ,
1106
- reason : jsSdkUtils . sprintf ( 'onReady timeout expired after %s ms' , timeout ) ,
1106
+ reason : sprintf ( 'onReady timeout expired after %s ms' , timeout ) ,
1107
1107
} ) ;
1108
1108
} . bind ( this ) ;
1109
1109
var readyTimeout = setTimeout ( onReadyTimeout , timeout ) ;
@@ -1132,4 +1132,4 @@ Optimizely.prototype.onReady = function(options) {
1132
1132
return Promise . race ( [ this . __readyPromise , timeoutPromise ] ) ;
1133
1133
} ;
1134
1134
1135
- module . exports = Optimizely ;
1135
+ export default Optimizely ;
0 commit comments