@@ -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 . assign ( 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 ) ;
0 commit comments