@@ -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' ) ;
63- jsSdkUtils . objectValues ( projectConfig . rolloutIdMap || { } ) . forEach ( function ( rollout ) {
64- fns . forEach ( rollout . experiments || [ ] , function ( experiment ) {
63+ jsSdkUtils . objectValues ( projectConfig . rolloutIdMap || { } ) . forEach ( function ( rollout ) {
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
@@ -93,7 +93,7 @@ module.exports = {
9393 projectConfig . featureKeyMap = fns . keyBy ( projectConfig . featureFlags || [ ] , 'key' ) ;
9494 jsSdkUtils . objectValues ( projectConfig . featureKeyMap || { } ) . forEach ( function ( feature ) {
9595 feature . variableKeyMap = fns . keyBy ( feature . variables , 'key' ) ;
96- fns . forEach ( feature . experimentIds || [ ] , function ( experimentId ) {
96+ ( feature . experimentIds || [ ] ) . forEach ( function ( experimentId ) {
9797 // Add this experiment in experiment-feature map.
9898 if ( projectConfig . experimentFeatureMap [ experimentId ] ) {
9999 projectConfig . experimentFeatureMap [ experimentId ] . push ( feature . id ) ;
0 commit comments