@@ -27,16 +27,16 @@ class ProjectConfig {
2727
2828 var whitelistUsers = [ String: [ String: String] ] ( )
2929
30- lazy var experimentKeyMap : [ String : Experiment ] ? = {
30+ lazy var experimentKeyMap : [ String : Experiment ] = {
3131 var map = [ String: Experiment] ( )
32- _ = allExperiments. map ( { map [ $0. key] = $0} )
32+ allExperiments. forEach ( { map [ $0. key] = $0} )
3333 return map
3434 } ( )
3535
36- lazy var experimentFeatureMap : [ String : [ String ] ] ? = {
36+ lazy var experimentFeatureMap : [ String : [ String ] ] = {
3737 var experimentFeatureMap = [ String: [ String] ] ( )
38- _ = project. featureFlags. map ( { ( ff) in
39- ff. experimentIds. map ( {
38+ project. featureFlags. forEach ( { ( ff) in
39+ ff. experimentIds. forEach ( {
4040 if var arr = experimentFeatureMap [ $0] {
4141 arr. append ( ff. id)
4242 experimentFeatureMap [ $0] = arr
@@ -49,13 +49,15 @@ class ProjectConfig {
4949 return experimentFeatureMap
5050 } ( )
5151
52- lazy var eventKeyMap : [ String : Event ] ? = {
52+ lazy var eventKeyMap : [ String : Event ] = {
5353 var eventKeyMap = [ String: Event] ( )
54- _ = project. events. map ( { eventKeyMap [ $0. key] = $0 } )
54+ project. events. forEach ( { eventKeyMap [ $0. key] = $0 } )
5555 return eventKeyMap
5656 } ( )
5757
58- var _allExperiments : [ Experiment ] ?
58+ lazy var allExperiments : [ Experiment ] = {
59+ return project. experiments + project. groups. map ( { $0. experiments} ) . flatMap ( { $0} )
60+ } ( )
5961
6062 init ( datafile: Data ) throws {
6163 do {
@@ -120,20 +122,6 @@ extension ProjectConfig {
120122 return [ " 4 " ] . contains ( version)
121123 }
122124
123- private func generateExperimentFeatureMap( ) {
124- experimentFeatureMap = [ String: [ String] ] ( )
125- _ = project. featureFlags. map ( { ( ff) in
126- ff. experimentIds. map ( {
127- if var arr = self . experimentFeatureMap ? [ $0] {
128- arr. append ( ff. id)
129- self . experimentFeatureMap ? [ $0] = arr
130- }
131- else {
132- self . experimentFeatureMap ? [ $0] = [ ff. id]
133- }
134- } )
135- } )
136- }
137125}
138126
139127// MARK: - Project Access
@@ -144,10 +132,7 @@ extension ProjectConfig {
144132 * Get an Experiment object for a key.
145133 */
146134 func getExperiment( key: String ) -> Experiment ? {
147- if let experimentMap = experimentKeyMap {
148- return experimentMap [ key]
149- }
150- return allExperiments. filter { $0. key == key } . first
135+ return experimentKeyMap [ key]
151136 }
152137
153138 /**
@@ -189,7 +174,7 @@ extension ProjectConfig {
189174 * Gets an event for a corresponding event key
190175 */
191176 func getEvent( key: String ) -> Event ? {
192- return eventKeyMap ? [ key]
177+ return eventKeyMap [ key]
193178 }
194179
195180 /**
@@ -225,7 +210,7 @@ extension ProjectConfig {
225210 * Returns true if experiment belongs to any feature, false otherwise.
226211 */
227212 func isFeatureExperiment( id: String ) -> Bool {
228- return experimentFeatureMap ? [ id] ? . isEmpty ?? false
213+ return ! ( experimentFeatureMap [ id] ? . isEmpty ?? true )
229214 }
230215
231216 /**
@@ -281,15 +266,4 @@ extension ProjectConfig {
281266 return true
282267 }
283268
284- var allExperiments : [ Experiment ] {
285- if let _allExperiments = _allExperiments {
286- return _allExperiments
287- }
288- else {
289- _allExperiments = project. experiments + project. groups. map ( { $0. experiments} ) . flatMap ( { $0} )
290- return _allExperiments ?? [ ]
291- }
292-
293- }
294-
295269}
0 commit comments