Skip to content

Commit 340075a

Browse files
authored
Merge branch 'master' into prepare-3.4.0-beta
2 parents 595fdb8 + cafd45c commit 340075a

File tree

16 files changed

+544
-414
lines changed

16 files changed

+544
-414
lines changed

.eslintrc.js

Lines changed: 0 additions & 48 deletions
This file was deleted.

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,17 @@ after_success: npm run coveralls
2626

2727
# Integration tests need to run first to reset the PR build status to pending
2828
stages:
29+
- 'Lint'
2930
- 'Integration tests'
3031
- 'Benchmarking tests'
3132
- 'Cross-browser and umd unit tests'
3233
- 'Test'
3334

3435
jobs:
3536
include:
37+
- stage: 'Lint'
38+
node_js: '12'
39+
script: npm run lint
3640
- &integrationtest
3741
stage: 'Integration tests'
3842
merge_mode: replace

packages/optimizely-sdk/.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.tests.js
2+
*.umdtests.js
3+
test_data.js

packages/optimizely-sdk/.eslintrc.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module.exports = {
2+
env: {
3+
browser: true,
4+
commonjs: true,
5+
node: true,
6+
},
7+
extends: 'eslint:recommended',
8+
globals: {
9+
Atomics: 'readonly',
10+
SharedArrayBuffer: 'readonly',
11+
Promise: 'readonly',
12+
},
13+
parserOptions: {
14+
ecmaVersion: 5,
15+
},
16+
rules: {
17+
'no-prototype-builtins': 'off',
18+
},
19+
};

packages/optimizely-sdk/lib/core/custom_attribute_condition_evaluator/index.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ var LOG_LEVEL = enums.LOG_LEVEL;
2222
var LOG_MESSAGES = enums.LOG_MESSAGES;
2323
var MODULE_NAME = 'CUSTOM_ATTRIBUTE_CONDITION_EVALUATOR';
2424

25-
var CUSTOM_ATTRIBUTE_CONDITION_TYPE = 'custom_attribute';
26-
2725
var EXACT_MATCH_TYPE = 'exact';
2826
var EXISTS_MATCH_TYPE = 'exists';
2927
var GREATER_THAN_MATCH_TYPE = 'gt';

packages/optimizely-sdk/lib/core/decision_service/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,24 @@ DecisionService.prototype.getVariation = function(configObj, experimentKey, user
6767
// by default, the bucketing ID should be the user ID
6868
var bucketingId = this._getBucketingId(userId, attributes);
6969

70-
if (!this.__checkIfExperimentIsActive(configObj, experimentKey, userId)) {
70+
if (!this.__checkIfExperimentIsActive(configObj, experimentKey)) {
7171
return null;
7272
}
7373
var experiment = configObj.experimentKeyMap[experimentKey];
7474
var forcedVariationKey = this.getForcedVariation(configObj, experimentKey, userId);
75-
if (!!forcedVariationKey) {
75+
if (forcedVariationKey) {
7676
return forcedVariationKey;
7777
}
7878

7979
var variation = this.__getWhitelistedVariation(experiment, userId);
80-
if (!!variation) {
80+
if (variation) {
8181
return variation.key;
8282
}
8383

8484
// check for sticky bucketing
8585
var experimentBucketMap = this.__resolveExperimentBucketMap(userId, attributes);
8686
variation = this.__getStoredVariation(configObj, experiment, userId, experimentBucketMap);
87-
if (!!variation) {
87+
if (variation) {
8888
this.logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.RETURNING_STORED_VARIATION, MODULE_NAME, variation.key, experimentKey, userId));
8989
return variation.key;
9090
}
@@ -127,7 +127,7 @@ DecisionService.prototype.__resolveExperimentBucketMap = function(userId, attrib
127127
* @param {string} userId ID of user
128128
* @return {boolean} True if experiment is running
129129
*/
130-
DecisionService.prototype.__checkIfExperimentIsActive = function(configObj, experimentKey, userId) {
130+
DecisionService.prototype.__checkIfExperimentIsActive = function(configObj, experimentKey) {
131131
if (!projectConfig.isActive(configObj, experimentKey)) {
132132
var experimentNotRunningLogMessage = sprintf(LOG_MESSAGES.EXPERIMENT_NOT_RUNNING, MODULE_NAME, experimentKey);
133133
this.logger.log(LOG_LEVEL.INFO, experimentNotRunningLogMessage);

packages/optimizely-sdk/lib/core/decision_service/index.tests.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,12 +404,12 @@ describe('lib/core/decision_service', function() {
404404

405405
describe('__checkIfExperimentIsActive', function () {
406406
it('should return true if experiment is running', function () {
407-
assert.isTrue(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperiment', 'testUser'));
407+
assert.isTrue(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperiment'));
408408
sinon.assert.notCalled(mockLogger.log);
409409
});
410410

411411
it('should return false when experiment is not running', function () {
412-
assert.isFalse(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperimentNotRunning', 'testUser'));
412+
assert.isFalse(decisionServiceInstance.__checkIfExperimentIsActive(configObj, 'testExperimentNotRunning'));
413413
sinon.assert.calledOnce(mockLogger.log);
414414
var logMessage = mockLogger.log.args[0][1];
415415
assert.strictEqual(logMessage, sprintf(LOG_MESSAGES.EXPERIMENT_NOT_RUNNING, 'DECISION_SERVICE', 'testExperimentNotRunning'));

packages/optimizely-sdk/lib/core/optimizely_config/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function getMergedVariablesMap(configObj, variation, experimentId, featureVariab
5757
var featureId = configObj.experimentFeatureMap[experimentId];
5858
var variablesObject = {};
5959
if (featureId) {
60-
experimentFeatureVariables = featureVariablesMap[featureId];
60+
var experimentFeatureVariables = featureVariablesMap[featureId];
6161
// Temporary variation variables map to get values to merge.
6262
var tempVariablesIdMap = variation.variables.reduce(function(variablesMap, variable) {
6363
variablesMap[variable.id] = {
@@ -67,8 +67,8 @@ function getMergedVariablesMap(configObj, variation, experimentId, featureVariab
6767
return variablesMap;
6868
}, {});
6969
variablesObject = experimentFeatureVariables.reduce(function(variablesMap, featureVariable) {
70-
variationVariable = tempVariablesIdMap[featureVariable.id];
71-
variableValue = variation.featureEnabled && variationVariable ? variationVariable.value : featureVariable.defaultValue;
70+
var variationVariable = tempVariablesIdMap[featureVariable.id];
71+
var variableValue = variation.featureEnabled && variationVariable ? variationVariable.value : featureVariable.defaultValue;
7272
variablesMap[featureVariable.key] = {
7373
id: featureVariable.id,
7474
key: featureVariable.key,

packages/optimizely-sdk/lib/core/project_config/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ module.exports = {
271271
getExperimentFromKey: function(projectConfig, experimentKey) {
272272
if (projectConfig.experimentKeyMap.hasOwnProperty(experimentKey)) {
273273
var experiment = projectConfig.experimentKeyMap[experimentKey];
274-
if (!!experiment) {
274+
if (experiment) {
275275
return experiment;
276276
}
277277
}
@@ -304,7 +304,7 @@ module.exports = {
304304
getExperimentFromId: function(projectConfig, experimentId, logger) {
305305
if (projectConfig.experimentIdMap.hasOwnProperty(experimentId)) {
306306
var experiment = projectConfig.experimentIdMap[experimentId];
307-
if (!!experiment) {
307+
if (experiment) {
308308
return experiment;
309309
}
310310
}
@@ -325,7 +325,7 @@ module.exports = {
325325
getFeatureFromKey: function(projectConfig, featureKey, logger) {
326326
if (projectConfig.featureKeyMap.hasOwnProperty(featureKey)) {
327327
var feature = projectConfig.featureKeyMap[featureKey];
328-
if (!!feature) {
328+
if (feature) {
329329
return feature;
330330
}
331331
}

packages/optimizely-sdk/lib/optimizely/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ Optimizely.prototype.isFeatureEnabled = function(featureKey, userId, attributes)
562562
var variation = decision.variation;
563563
var sourceInfo = {};
564564

565-
if (!!variation) {
565+
if (variation) {
566566
featureEnabled = variation.featureEnabled;
567567
if (decision.decisionSource === DECISION_SOURCES.FEATURE_TEST) {
568568
sourceInfo = {

packages/optimizely-sdk/lib/plugins/error_handler/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module.exports = {
2222
* Handle given exception
2323
* @param {Object} exception An exception object
2424
*/
25-
handleError: function(exception) {
25+
handleError: function() {
2626
// no-op
2727
}
2828
};

packages/optimizely-sdk/lib/plugins/event_dispatcher/index.browser.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ module.exports = {
2929
dispatchEvent: function(eventObj, callback) {
3030
var url = eventObj.url;
3131
var params = eventObj.params;
32+
var req;
3233
if (eventObj.httpVerb === POST_METHOD) {
33-
var req = new XMLHttpRequest();
34+
req = new XMLHttpRequest();
3435
req.open(POST_METHOD, url, true);
3536
req.setRequestHeader('Content-Type', 'application/json');
3637
req.onreadystatechange = function() {
@@ -50,7 +51,7 @@ module.exports = {
5051
url += '&' + toQueryString(params);
5152
}
5253

53-
var req = new XMLHttpRequest();
54+
req = new XMLHttpRequest();
5455
req.open(GET_METHOD, url, true);
5556
req.onreadystatechange = function() {
5657
if (req.readyState === READYSTATE_COMPLETE && callback && typeof callback === 'function') {

packages/optimizely-sdk/lib/plugins/event_dispatcher/index.node.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ module.exports = {
3434
}
3535

3636
var parsedUrl = url.parse(eventObj.url);
37-
var path = parsedUrl.path;
38-
if (parsedUrl.query) {
39-
path += '?' + parsedUrl.query;
40-
}
4137

4238
var dataString = JSON.stringify(eventObj.params);
4339

packages/optimizely-sdk/lib/plugins/logger/index.react_native.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,30 @@
1414
* limitations under the License.
1515
*/
1616
var LogLevel = require('@optimizely/js-sdk-logging').LogLevel;
17+
var sprintf = require('@optimizely/js-sdk-utils').sprintf;
1718

1819
function getLogLevelName(level) {
1920
switch(level) {
2021
case LogLevel.INFO: return 'INFO';
2122
case LogLevel.ERROR: return 'ERROR';
2223
case LogLevel.WARNING: return 'WARNING';
2324
case LogLevel.DEBUG: return 'DEBUG';
24-
default: return 'NOTSET';
25+
default: return 'NOTSET';
2526
}
2627
}
2728

28-
class ReactNativeLogger {
29-
log(level, message) {
30-
const formattedMessage = `[OPTIMIZELY] - ${getLogLevelName(level)} ${new Date().toISOString()} ${message}`;
31-
switch (level) {
32-
case LogLevel.INFO: console.info(formattedMessage); break;
33-
case LogLevel.ERROR:
34-
case LogLevel.WARNING: console.warn(formattedMessage); break;
35-
case LogLevel.DEBUG:
36-
case LogLevel.NOTSET: console.log(formattedMessage); break;
37-
}
29+
function ReactNativeLogger() {}
30+
31+
ReactNativeLogger.prototype.log = function(level, message) {
32+
var formattedMessage = sprintf('[OPTIMIZELY] - %s %s %s', getLogLevelName(level), new Date().toISOString(), message);
33+
switch (level) {
34+
case LogLevel.INFO: console.info(formattedMessage); break;
35+
case LogLevel.ERROR:
36+
case LogLevel.WARNING: console.warn(formattedMessage); break;
37+
case LogLevel.DEBUG:
38+
case LogLevel.NOTSET: console.log(formattedMessage); break;
3839
}
39-
}
40+
};
4041

4142
function NoOpLogger() {}
4243

0 commit comments

Comments
 (0)