Skip to content

Commit ec0c077

Browse files
committed
Removed forEach method of Lodash
1 parent 4cae458 commit ec0c077

File tree

3 files changed

+10
-28
lines changed

3 files changed

+10
-28
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ NotificationCenter.prototype.addNotificationListener = function (notificationTyp
6666
}
6767

6868
var callbackAlreadyAdded = false;
69-
fns.forEach(this.__notificationListeners[notificationType], function (listenerEntry) {
69+
(this.__notificationListeners[notificationType] || []).forEach(function(listenerEntry) {
7070
if (listenerEntry.callback === callback) {
7171
callbackAlreadyAdded = true;
7272
return false;
@@ -102,7 +102,7 @@ NotificationCenter.prototype.removeNotificationListener = function (listenerId)
102102
var indexToRemove;
103103
var typeToRemove;
104104
fns.forOwn(this.__notificationListeners, function (listenersForType, notificationType) {
105-
fns.forEach(listenersForType, function (listenerEntry, i) {
105+
(listenersForType || []).forEach(function(listenerEntry, i) {
106106
if (listenerEntry.id === listenerId) {
107107
indexToRemove = i;
108108
typeToRemove = notificationType;
@@ -160,7 +160,7 @@ NotificationCenter.prototype.clearNotificationListeners = function (notification
160160
*/
161161
NotificationCenter.prototype.sendNotifications = function (notificationType, notificationData) {
162162
try {
163-
fns.forEach(this.__notificationListeners[notificationType], function (listenerEntry) {
163+
(this.__notificationListeners[notificationType] || []).forEach(function(listenerEntry) {
164164
var callback = listenerEntry.callback;
165165
try {
166166
callback(notificationData);

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ module.exports = {
4141
* Conditions of audiences in projectConfig.typedAudiences are not
4242
* expected to be string-encoded as they are here in projectConfig.audiences.
4343
*/
44-
fns.forEach(projectConfig.audiences, function(audience) {
44+
(projectConfig.audiences || []).forEach(function(audience) {
4545
audience.conditions = JSON.parse(audience.conditions);
4646
});
4747
projectConfig.audiencesById = fns.keyBy(projectConfig.audiences, 'id');
@@ -52,16 +52,16 @@ module.exports = {
5252
projectConfig.groupIdMap = fns.keyBy(projectConfig.groups, 'id');
5353

5454
var experiments;
55-
fns.forEach(projectConfig.groupIdMap, function(group, Id) {
56-
experiments = fns.cloneDeep(group.experiments);
57-
fns.forEach(experiments, function(experiment) {
55+
Object.keys(projectConfig.groupIdMap || {}).forEach(function(Id) {
56+
experiments = fns.cloneDeep(projectConfig.groupIdMap[Id].experiments);
57+
(experiments || []).forEach(function(experiment) {
5858
projectConfig.experiments.push(fns.assignIn(experiment, {groupId: Id}));
5959
});
6060
});
6161

6262
projectConfig.rolloutIdMap = fns.keyBy(projectConfig.rollouts || [], 'id');
6363
fns.forOwn(projectConfig.rolloutIdMap, function(rollout) {
64-
fns.forEach(rollout.experiments || [], function(experiment) {
64+
(rollout.experiments || []).forEach(function(experiment) {
6565
projectConfig.experiments.push(fns.cloneDeep(experiment));
6666
// Creates { <variationKey>: <variation> } map inside of the experiment
6767
experiment.variationKeyMap = fns.keyBy(experiment.variations, 'key');
@@ -73,7 +73,7 @@ module.exports = {
7373

7474
projectConfig.variationIdMap = {};
7575
projectConfig.variationVariableUsageMap = {};
76-
fns.forEach(projectConfig.experiments, function(experiment) {
76+
(projectConfig.experiments || []).forEach(function(experiment) {
7777
// Creates { <variationKey>: <variation> } map inside of the experiment
7878
experiment.variationKeyMap = fns.keyBy(experiment.variations, 'key');
7979

@@ -94,7 +94,7 @@ module.exports = {
9494
projectConfig.featureKeyMap = fns.keyBy(projectConfig.featureFlags || [], 'key');
9595
fns.forOwn(projectConfig.featureKeyMap, function(feature) {
9696
feature.variableKeyMap = fns.keyBy(feature.variables, 'key');
97-
fns.forEach(feature.experimentIds || [], function(experimentId) {
97+
(feature.experimentIds || []).forEach(function(experimentId) {
9898
// Add this experiment in experiment-feature map.
9999
if (projectConfig.experimentFeatureMap[experimentId]) {
100100
projectConfig.experimentFeatureMap[experimentId].push(feature.id);

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

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,6 @@ module.exports = {
3131
},
3232
keyBy: require('lodash/keyBy'),
3333
filter: require('lodash/filter'),
34-
forEach: function(collection, iteratee) {
35-
// checking iteratee is a function otherwise return identity
36-
iteratee = typeof iteratee == 'function' ? iteratee : function(value, index, collection) {
37-
return value;
38-
};
39-
if (Array.isArray(collection)) {
40-
var index = -1, length = collection == null ? 0 : collection.length;
41-
42-
while (++index < length) {
43-
if (iteratee(collection[index], index, collection) === false) {
44-
break;
45-
}
46-
}
47-
return collection;
48-
} else {
49-
50-
}
51-
},
5234
forOwn: require('lodash/forOwn'),
5335
map: require('lodash/map'),
5436
uuid: function() {

0 commit comments

Comments
 (0)