@@ -41,7 +41,7 @@ module.exports = {
41
41
* Conditions of audiences in projectConfig.typedAudiences are not
42
42
* expected to be string-encoded as they are here in projectConfig.audiences.
43
43
*/
44
- fns . forEach ( projectConfig . audiences , function ( audience ) {
44
+ ( projectConfig . audiences || [ ] ) . forEach ( function ( audience ) {
45
45
audience . conditions = JSON . parse ( audience . conditions ) ;
46
46
} ) ;
47
47
projectConfig . audiencesById = fns . keyBy ( projectConfig . audiences , 'id' ) ;
@@ -52,16 +52,16 @@ module.exports = {
52
52
projectConfig . groupIdMap = fns . keyBy ( projectConfig . groups , 'id' ) ;
53
53
54
54
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 ) {
58
58
projectConfig . experiments . push ( fns . assign ( experiment , { groupId : Id } ) ) ;
59
59
} ) ;
60
60
} ) ;
61
61
62
62
projectConfig . rolloutIdMap = fns . keyBy ( projectConfig . rollouts || [ ] , 'id' ) ;
63
63
fns . forOwn ( projectConfig . rolloutIdMap , function ( rollout ) {
64
- fns . forEach ( rollout . experiments || [ ] , function ( experiment ) {
64
+ ( rollout . experiments || [ ] ) . forEach ( function ( experiment ) {
65
65
projectConfig . experiments . push ( fns . cloneDeep ( experiment ) ) ;
66
66
// Creates { <variationKey>: <variation> } map inside of the experiment
67
67
experiment . variationKeyMap = fns . keyBy ( experiment . variations , 'key' ) ;
@@ -73,7 +73,7 @@ module.exports = {
73
73
74
74
projectConfig . variationIdMap = { } ;
75
75
projectConfig . variationVariableUsageMap = { } ;
76
- fns . forEach ( projectConfig . experiments , function ( experiment ) {
76
+ ( projectConfig . experiments || [ ] ) . forEach ( function ( experiment ) {
77
77
// Creates { <variationKey>: <variation> } map inside of the experiment
78
78
experiment . variationKeyMap = fns . keyBy ( experiment . variations , 'key' ) ;
79
79
@@ -94,7 +94,7 @@ module.exports = {
94
94
projectConfig . featureKeyMap = fns . keyBy ( projectConfig . featureFlags || [ ] , 'key' ) ;
95
95
fns . forOwn ( projectConfig . featureKeyMap , function ( feature ) {
96
96
feature . variableKeyMap = fns . keyBy ( feature . variables , 'key' ) ;
97
- fns . forEach ( feature . experimentIds || [ ] , function ( experimentId ) {
97
+ ( feature . experimentIds || [ ] ) . forEach ( function ( experimentId ) {
98
98
// Add this experiment in experiment-feature map.
99
99
if ( projectConfig . experimentFeatureMap [ experimentId ] ) {
100
100
projectConfig . experimentFeatureMap [ experimentId ] . push ( feature . id ) ;
0 commit comments