@@ -70,15 +70,23 @@ extension OptimizelyClient {
7070 return OptimizelyDecision . errorDecision ( key: key, user: user, error: . featureKeyInvalid( key) )
7171 }
7272
73- let allOptions = defaultDecideOptions + ( options ?? [ ] )
74- /// Need to remove enable flags
75- let decisionMap = decide ( user: user, keys: [ key] , options: allOptions)
73+ var allOptions = defaultDecideOptions + ( options ?? [ ] )
74+ allOptions. removeAll ( where: { $0 == . enabledFlagsOnly } )
75+
76+ let decisionMap = decide ( user: user, keys: [ key] , options: allOptions, ignoreDefaultOptions: true )
7677 return decisionMap [ key] ?? OptimizelyDecision . errorDecision ( key: key, user: user, error: . generic)
7778 }
7879
7980 func decide( user: OptimizelyUserContext ,
8081 keys: [ String ] ,
8182 options: [ OptimizelyDecideOption ] ? = nil ) -> [ String : OptimizelyDecision ] {
83+ return decide ( user: user, keys: keys, options: options, ignoreDefaultOptions: false )
84+ }
85+
86+ func decide( user: OptimizelyUserContext ,
87+ keys: [ String ] ,
88+ options: [ OptimizelyDecideOption ] ? = nil ,
89+ ignoreDefaultOptions: Bool ) -> [ String : OptimizelyDecision ] {
8290 guard let config = self . config else {
8391 logger. e ( OptimizelyError . sdkNotReady)
8492 return [ : ]
@@ -93,7 +101,7 @@ extension OptimizelyClient {
93101 var flagDecisions = [ String : FeatureDecision] ( )
94102 var decisionReasonMap = [ String : DecisionReasons] ( )
95103
96- let allOptions = options ?? [ ]
104+ let allOptions = ignoreDefaultOptions ? ( options ?? [ ] ) : defaultDecideOptions + ( options ?? [ ] )
97105
98106 for key in keys {
99107 guard let flags = config. getFeatureFlag ( key: key) else {
0 commit comments