8000 feat: Upgrade TypeScript to v4.0.3 in optimizely-sdk package (#597) · rserrano-eSW/javascript-sdk@79cb378 · GitHub
[go: up one dir, main page]

Skip to content

Commit 79cb378

Browse files
authored
feat: Upgrade TypeScript to v4.0.3 in optimizely-sdk package (optimizely#597)
* Upgrate ts to 4.0.3 * Fix stubbing issue of fns by using default export object * Clean up fns module * Fix indentation * Update eslintrc.js * Update export default * Update fns
1 parent c3426a8 commit 79cb378

File tree

22 files changed

+2086
-2735
lines changed

22 files changed

+2086
-2735
lines changed

packages/optimizely-sdk/.eslintrc.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ module.exports = {
1414
Promise: 'readonly',
1515
},
1616
parserOptions: {
17-
// Note: The TS compiler determines what syntax is accepted. We're using TS version 3.3.3333.
18-
// This seems to roughly correspond to "2018" for this setting.
19-
ecmaVersion: 2018,
17+
// Note: The TS compiler determines what syntax is accepted. We're using TS version 4.0.3.
18+
// This seems to correspond to "2020" for this setting.
19+
ecmaVersion: 2020,
2020
sourceType: 'module',
2121
},
2222
overrides: [

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import { sprintf } from '@optimizely/js-sdk-utils';
1717
import { getLogger } from '@optimizely/js-sdk-logging';
1818

19-
import { assign } from '../../utils/fns';
19+
import fns from '../../utils/fns';
2020
import {
2121
LOG_LEVEL,
2222
LOG_MESSAGES,
@@ -36,7 +36,7 @@ var MODULE_NAME = 'AUDIENCE_EVALUATOR';
3636
* @constructor
3737
*/
3838
function AudienceEvaluator(UNSTABLE_conditionEvaluators) {
39-
this.typeToEvaluatorMap = assign({}, UNSTABLE_conditionEvaluators, {
39+
this.typeToEvaluatorMap = fns.assign({}, UNSTABLE_conditionEvaluators, {
4040
custom_attribute: customAttributeConditionEvaluator,
4141
});
4242
}

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import { getLogger } from '@optimizely/js-sdk-logging';
1717
import { UserAttributes } from '../../shared_types';
1818

19-
import { isNumber, isSafeInteger } from '../../utils/fns';
19+
import fns from '../../utils/fns';
2020
import { LOG_MESSAGES } from '../../utils/enums';
2121
import { compareVersion } from '../../utils/semantic_version';
2222

@@ -117,7 +117,7 @@ export function evaluate(condition: Condition, userAttributes: UserAttributes):
117117
* @returns {boolean}
118118
*/
119119
function isValueTypeValidForExactConditions(value: unknown): boolean {
120-
return typeof value === 'string' || typeof value === 'boolean' || isNumber(value);
120+
return typeof value === 'string' || typeof value === 'boolean' || fns.isNumber(value);
121121
}
122122

123123
/**
@@ -140,7 +140,7 @@ function exactEvaluator(condition: Condition, userAttributes: UserAttributes): b
140140

141141
if (
142142
!isValueTypeValidForExactConditions(conditionValue) ||
143-
(isNumber(conditionValue) && !isSafeInteger(conditionValue))
143+
(fns.isNumber(conditionValue) && !fns.isSafeInteger(conditionValue))
144144
) {
145145
logger.warn(
146146
LOG_MESSAGES.UNEXPECTED_CONDITION_VALUE, MODULE_NAME, JSON.stringify(condition)
@@ -162,7 +162,7 @@ function exactEvaluator(condition: Condition, userAttributes: UserAttributes): b
162162
return null;
163163
}
164164

165-
if (isNumber(userValue) && !isSafeInteger(userValue)) {
165+
if (fns.isNumber(userValue) && !fns.isSafeInteger(userValue)) {
166166
logger.warn(
167167
LOG_MESSAGES.OUT_OF_BOUNDS, MODULE_NAME, JSON.stringify(condition), conditionName
168168
);
@@ -199,7 +199,7 @@ function validateValuesForNumericCondition(condition: Condition, userAttributes:
199199
const userValueType = typeof userValue;
200200
const conditionValue = condition.value;
201201

202-
if (conditionValue === null || !isSafeInteger(conditionValue)) {
202+
if (conditionValue === null || !fns.isSafeInteger(conditionValue)) {
203203
logger.warn(
204204
LOG_MESSAGES.UNEXPECTED_CONDITION_VALUE, MODULE_NAME, JSON.stringify(condition)
205205
);
@@ -213,14 +213,14 @@ function validateValuesForNumericCondition(condition: Condition, userAttributes:
213213
return false;
214214
}
215215

216-
if (!isNumber(userValue)) {
216+
if (!fns.isNumber(userValue)) {
217217
logger.warn(
218218
LOG_MESSAGES.UNEXPECTED_TYPE, MODULE_NAME, JSON.stringify(condition), userValueType, conditionName
219219
);
220220
return false;
221221
}
222222

223-
if (!isSafeInteger(userValue)) {
223+
if (!fns.isSafeInteger(userValue)) {
224224
logger.warn(
225225
LOG_MESSAGES.OUT_OF_BOUNDS, MODULE_NAME, JSON.stringify(condition), conditionName
226226
);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
***************************************************************************/
1616
import { sprintf } from'@optimizely/js-sdk-utils';
1717

18-
import { assign } from '../../utils/fns';
18+
import fns from '../../utils/fns';
1919
import bucketer from '../bucketer';
2020
import * as enums from '../../utils/enums';
2121
import projectConfig from '../project_config';
@@ -139,7 +139,7 @@ DecisionService.prototype.__resolveExperimentBucketMap = function(userId, attrib
139139
attributes = attributes || {};
140140
var userProfile = this.__getUserProfile(userId) || {};
141141
var attributeExperimentBucketMap = attributes[enums.CONTROL_ATTRIBUTES.STICKY_BUCKETING_KEY];
142-
return assign({}, userProfile.experiment_bucket_map, attributeExperimentBucketMap);
142+
return fns.assign({}, userProfile.experiment_bucket_map, attributeExperimentBucketMap);
143143
};
144144

145145
/**

packages/optimizely-sdk/lib/core/event_builder/event_helpers.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
import { getLogger } from '@optimizely/js-sdk-logging';
1717

18-
import { currentTimestamp, uuid } from '../../utils/fns';
18+
import fns from '../../utils/fns';
1919
import projectConfig from '../project_config';
2020
import * as eventTagUtils from '../../utils/event_tag_utils';
2121
import * as attributesValidator from'../../utils/attributes_validator';
@@ -49,8 +49,8 @@ export var buildImpressionEvent = function(config) {
4949

5050
return {
5151
type: 'impression',
52-
timestamp: currentTimestamp(),
53-
uuid: uuid(),
52+
timestamp: fns.currentTimestamp(),
53+
uuid: fns.uuid(),
5454

5555
user: {
5656
id: userId,
@@ -116,8 +116,8 @@ export var buildConversionEvent = function(config) {
116116

117117
return {
118118
type: 'conversion',
119-
timestamp: currentTimestamp(),
120-
uuid: uuid(),
119+
timestamp: fns.currentTimestamp(),
120+
uuid: fns.uuid(),
121121

122122
user: {
123123
id: userId,

packages/optimizely-sdk/lib/core/event_builder/event_helpers.tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import sinon from 'sinon';
1717
import { assert } from 'chai';
1818

19-
import * as fns from '../../utils/fns';
19+
import fns from '../../utils/fns';
2020
import projectConfig from '../project_config';
2121
import { buildImpressionEvent, buildConversionEvent } from './event_helpers';
2222

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
import { currentTimestamp, uuid } from '../../utils/fns';
16+
import fns from '../../utils/fns';
1717
import { CONTROL_ATTRIBUTES, RESERVED_EVENT_KEYWORDS } from '../../utils/enums';
1818
import projectConfig from '../project_config';
1919
import * as eventTagUtils from '../../utils/event_tag_utils';
@@ -106,9 +106,9 @@ function getImpressionEventParams(configObj, experimentId, variationId) {
106106
events: [
107107
{
108108
entity_id: projectConfig.getLayerId(configObj, experimentId),
109-
timestamp: currentTimestamp(),
109+
timestamp: fns.currentTimestamp(),
110110
key: ACTIVATE_EVENT_KEY,
111-
uuid: uuid(),
111+
uuid: fns.uuid(),
112112
},
113113
],
114114
};
@@ -130,8 +130,8 @@ function getVisitorSnapshot(configObj, eventKey, eventTags, logger) {
130130

131131
var eventDict = {
132132
entity_id: projectConfig.getEventId(configObj, eventKey),
133-
timestamp: currentTimestamp(),
134-
uuid: uuid(),
133+
timestamp: fns.currentTimestamp(),
134+
uuid: fns.uuid(),
135135
key: eventKey,
136136
};
137137

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import sinon from 'sinon';
1717
import { assert } from 'chai';
1818

19-
import * as fns from '../../utils/fns';
19+
import fns from '../../utils/fns';
2020
import testData from '../../tests/test_data';
2121
import projectConfig from '../project_config';
2222
import packageJSON from '../../../package.json';

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
import { sprintf, objectValues } from '@optimizely/js-sdk-utils';
1717

18-
import { assign, keyBy } from '../../utils/fns';
18+
import fns from '../../utils/fns';
1919
import {
2020
ERROR_MESSAGES,
2121
LOG_LEVEL,
@@ -29,27 +29,27 @@ var RESERVED_ATTRIBUTE_PREFIX = '$opt_';
2929
var MODULE_NAME = 'PROJECT_CONFIG';
3030

3131
function createMutationSafeDatafileCopy(datafile) {
32-
var datafileCopy = assign({}, datafile);
32+
var datafileCopy = fns.assign({}, datafile);
3333
datafileCopy.audiences = (datafile.audiences || []).map(function(audience) {
34-
return assign({}, audience);
34+
return fns.assign({}, audience);
3535
});
3636
datafileCopy.experiments = (datafile.experiments || []).map(function(experiment) {
37-
return assign({}, experiment);
37+
return fns.assign({}, experiment);
3838
});
3939
datafileCopy.featureFlags = (datafile.featureFlags || []).map(function(featureFlag) {
40-
return assign({}, featureFlag);
40+
return fns.assign({}, featureFlag);
4141
});
4242
datafileCopy.groups = (datafile.groups || []).map(function(group) {
43-
var groupCopy = assign({}, group);
43+
var groupCopy = fns.assign({}, group);
4444
groupCopy.experiments = (group.experiments || []).map(function(experiment) {
45-
return assign({}, experiment);
45+
return fns.assign({}, experiment);
4646
});
4747
return groupCopy;
4848
});
4949
datafileCopy.rollouts = (datafile.rollouts || []).map(function(rollout) {
50-
var rolloutCopy = assign({}, rollout);
50+
var rolloutCopy = fns.assign({}, rollout);
5151
rolloutCopy.experiments = (rollout.experiments || []).map(function(experiment) {
52-
return assign({}, experiment);
52+
return fns.assign({}, experiment);
5353
});
5454
return rolloutCopy;
5555
});
@@ -74,44 +74,44 @@ export var createProjectConfig = function(datafileObj, datafileStr=null) {
7474
(projectConfig.audiences || []).forEach(function(audience) {
7575
audience.conditions = JSON.parse(audience.conditions);
7676
});
77-
projectConfig.audiencesById = keyBy(projectConfig.audiences, 'id');
78-
assign(projectConfig.audiencesById, keyBy(projectConfig.typedAudiences, 'id'));
77+
projectConfig.audiencesById = fns.keyBy(projectConfig.audiences, 'id');
78+
fns.assign(projectConfig.audiencesById, fns.keyBy(projectConfig.typedAudiences, 'id'));
7979

80-
projectConfig.attributeKeyMap = keyBy(projectConfig.attributes, 'key');
81-
projectConfig.eventKeyMap = keyBy(projectConfig.events, 'key');
82-
projectConfig.groupIdMap = keyBy(projectConfig.groups, 'id');
80+
projectConfig.attributeKeyMap = fns.keyBy(projectConfig.attributes, 'key');
81+
projectConfig.eventKeyMap = fns.keyBy(projectConfig.events, 'key');
82+
projectConfig.groupIdMap = fns.keyBy(projectConfig.groups, 'id');
8383

8484
var experiments;
8585
Object.keys(projectConfig.groupIdMap || {}).forEach(function(Id) {
8686
experiments = projectConfig.groupIdMap[Id].experiments;
8787
(experiments || []).forEach(function(experiment) {
88-
projectConfig.experiments.push(assign(experiment, { groupId: Id }));
88+
projectConfig.experiments.push(fns.assign(experiment, { groupId: Id }));
8989
});
9090
});
9191

92-
projectConfig.rolloutIdMap = keyBy(projectConfig.rollouts || [], 'id');
92+
projectConfig.rolloutIdMap = fns.keyBy(projectConfig.rollouts || [], 'id');
9393
objectValues(projectConfig.rolloutIdMap || {}).forEach(function (rollout) {
9494
(rollout.experiments || []).forEach(function(experiment) {
9595
projectConfig.experiments.push(experiment);
9696
// Creates { <variationKey>: <variation> } map inside of the experiment
97-
experiment.variationKeyMap = keyBy(experiment.variations, 'key');
97+
experiment.variationKeyMap = fns.keyBy(experiment.variations, 'key');
9898
});
9999
});
100100

101-
projectConfig.experimentKeyMap = keyBy(projectConfig.experiments, 'key');
102-
projectConfig.experimentIdMap = keyBy(projectConfig.experiments, 'id');
101+
projectConfig.experimentKeyMap = fns.keyBy(projectConfig.experiments, 'key');
102+
projectConfig.experimentIdMap = fns.keyBy(projectConfig.experiments, 'id');
103103

104104
projectConfig.variationIdMap = {};
105105
projectConfig.variationVariableUsageMap = {};
106106
(projectConfig.experiments || []).forEach(function(experiment) {
107107
// Creates { <variationKey>: <variation> } map inside of the experiment
108-
experiment.variationKeyMap = keyBy(experiment.variations, 'key');
108+
experiment.variationKeyMap = fns.keyBy(experiment.variations, 'key');
109109

110110
// Creates { <variationId>: { key: <variationKey>, id: <variationId> } } mapping for quick lookup
111-
assign(projectConfig.variationIdMap, keyBy(experiment.variations, 'id'));
111+
fns.assign(projectConfig.variationIdMap, fns.keyBy(experiment.variations, 'id'));
112112
objectValues(experiment.variationKeyMap || {}).forEach(function(variation) {
113113
if (variation.variables) {
114-
projectConfig.variationVariableUsageMap[variation.id] = keyBy(variation.variables, 'id');
114+
projectConfig.variationVariableUsageMap[variation.id] = fns.keyBy(variation.variables, 'id');
115115
}
116116
});
117117
});
@@ -120,7 +120,7 @@ export var createProjectConfig = function(datafileObj, datafileStr=null) {
120120
// for checking that experiment is a feature experiment or not.
121121
projectConfig.experimentFeatureMap = {};
122122

123-
projectConfig.featureKeyMap = keyBy(projectConfig.featureFlags || [], 'key');
123+
projectConfig.featureKeyMap = fns.keyBy(projectConfig.featureFlags || [], 'key');
124124
objectValues(projectConfig.featureKeyMap || {}).forEach(function(feature) {
125125
// Json type is represented in datafile as a subtype of string for the sake of backwards compatibility.
126126
// Converting it to a first-class json type while creating Project Config
@@ -131,7 +131,7 @@ export var createProjectConfig = function(datafileObj, datafileStr=null) {
131131
}
132132
});
133133

134-
feature.variableKeyMap = keyBy(feature.variables, 'key');
134+
feature.variableKeyMap = fns.keyBy(feature.variables, 'key');
135135
(feature.experimentIds || []).forEach(function(experimentId) {
136136
// Add this experiment in experiment-feature map.
137137
if (projectConfig.experimentFeatureMap[experimentId]) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { forEach, cloneDeep } from 'lodash';
1919
import { getLogger } from '@optimizely/js-sdk-logging';
2020
import { sprintf } from '@optimizely/js-sdk-utils';
2121

22-
import * as fns from '../../utils/fns';
22+
import fns from '../../utils/fns';
2323
import projectConfig from './';
2424
import {
2525
ERROR_MESSAGES,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { sprintf } from '@optimizely/js-sdk-utils';
1717
import { getLogger } from '@optimizely/js-sdk-logging';
1818
import { HttpPollingDatafileManager } from '@optimizely/js-sdk-datafile-manager';
1919

20-
import { assign } from '../../utils/fns';
20+
import fns from '../../utils/fns';
2121
import { ERROR_MESSAGES } from '../../utils/enums';
2222
import projectConfig from '../../core/project_config';
2323
import optimizelyConfig from '../optimizely_config';
@@ -106,7 +106,7 @@ ProjectConfigManager.prototype.__initialize = function(config) {
106106
sdkKey: config.sdkKey,
107107
};
108108
if (this.__validateDatafileOptions(config.datafileOptions)) {
109-
assign(datafileManagerConfig, config.datafileOptions);
109+
fns.assign(datafileManagerConfig, config.datafileOptions);
110110
}
111111
if (this.__configObj) {
112112
datafileManagerConfig.datafile = projectConfig.toDatafile(this.__configObj)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
} from '@optimizely/js-sdk-logging';
2424
import { LocalStoragePendingEventsDispatcher } from '@optimizely/js-sdk-event-processor';
2525

26-
import { assign } from './utils/fns';
26+
import fns from './utils/fns';
2727
import * as configValidator from './utils/config_validator';
2828
import defaultErrorHandler from './plugins/error_handler';
2929
import defaultEventDispatcher from './plugins/event_dispatcher/index.browser';
@@ -97,7 +97,7 @@ var createInstance = function(config) {
9797
eventDispatcher = config.eventDispatcher;
9898
}
9999

100-
config = assign(
100+
config = fns.assign(
101101
{
102102
clientEngine: enums.JAVASCRIPT_CLIENT_ENGINE,
103103
eventBatchSize: DEFAULT_EVENT_BATCH_SIZE,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
LogLevel,
2323
} from '@optimizely/js-sdk-logging';
2424

25-
import { assign } from './utils/fns';
25+
import fns from './utils/fns';
2626
import Optimizely from './optimizely';
2727
import * as enums from './utils/enums';
2828
import loggerPlugin from './plugins/logger';
@@ -83,7 +83,7 @@ var createInstance = function(config) {
8383
config.isValidInstance = false;
8484
}
8585

86-
config = assign(
86+
config = fns.assign(
8787
{
8888
clientEngine: enums.NODE_CLIENT_ENGINE,
8989
eventBatchSize: DEFAULT_EVENT_BATCH_SIZE,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
} from '@optimizely/js-sdk-logging';
2424

2525
import * as enums from './utils/enums';
26-
import { assign } from './utils/fns';
26+
import fns from './utils/fns';
2727
import Optimizely from './optimizely';
2828
import configValidator from './utils/config_validator';
2929
import defaultErrorHandler from './plugins/error_handler';
@@ -78,7 +78,7 @@ var createInstance = function(config) {
7878
config.isValidInstance = false;
7979
}
8080

81-
config = assign(
81+
config = fns.assign(
8282
{
8383
clientEngine: enums.JAVASCRIPT_CLIENT_ENGINE,
8484
eventBatchSize: DEFAULT_EVENT_BATCH_SIZE,

0 commit comments

Comments
 (0)
0