Skip to content

Commit a0cb796

Browse files
committed
Change alldecideOptions to object instead of an array
1 parent 59de6b6 commit a0cb796

File tree

1 file changed

+9
-10
lines changed
  • packages/optimizely-sdk/lib/optimizely

1 file changed

+9
-10
lines changed

packages/optimizely-sdk/lib/optimizely/index.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,15 +1515,15 @@ export default class Optimizely {
15151515
const variablesMap: { [key: string]: unknown } = {};
15161516
let decisionEventDispatched = false;
15171517

1518-
if (!allDecideOptions.includes(OptimizelyDecideOptions.EXCLUDE_VARIABLES)) {
1518+
if (!allDecideOptions[OptimizelyDecideOptions.EXCLUDE_VARIABLES]) {
15191519
const featureFlag = projectConfig.getFeatureFromKey(configObj, key, this.logger);
15201520
featureFlag?.variables.forEach(variable => {
15211521
variablesMap[variable.key] = this.getFeatureVariableValueFromVariation(key, flagEnabled, decisionObj.variation, variable, userId);
15221522
});
15231523
}
15241524

15251525
if (
1526-
!allDecideOptions.includes(OptimizelyDecideOptions.DISABLE_DECISION_EVENT) && (
1526+
!allDecideOptions[OptimizelyDecideOptions.DISABLE_DECISION_EVENT] && (
15271527
decisionSource === DECISION_SOURCES.FEATURE_TEST ||
15281528
decisionSource === DECISION_SOURCES.ROLLOUT && projectConfig.getSendFlagDecisionsValue(configObj))
15291529
) {
@@ -1537,7 +1537,7 @@ export default class Optimizely {
15371537
decisionEventDispatched = true;
15381538
}
15391539

1540-
const shouldIncludeReasons = allDecideOptions.includes(OptimizelyDecideOptions.INCLUDE_REASONS);
1540+
const shouldIncludeReasons = allDecideOptions[OptimizelyDecideOptions.INCLUDE_REASONS];
15411541
const featureInfo = {
15421542
featureKey: key,
15431543
featureEnabled: flagEnabled,
@@ -1568,18 +1568,17 @@ export default class Optimizely {
15681568
/**
15691569
* Get all decide options.
15701570
* @param {OptimizelyDecideOptions[]} options decide options
1571-
* @return {OptimizelyDecideOptions[]} Array of all provided decide options including default decide options
1571+
* @return {[key: string]: boolean} Map of all provided decide options including default decide options
15721572
*/
1573-
private getAllDecideOptions(options: OptimizelyDecideOptions[]): OptimizelyDecideOptions[] {
1574-
const allDecideOptions = [...Object.keys(this.defaultDecideOptions) as OptimizelyDecideOptions[]];
1573+
private getAllDecideOptions(options: OptimizelyDecideOptions[]): { [key: string]: boolean } {
1574+
const allDecideOptions = {...this.defaultDecideOptions};
15751575
if (!Array.isArray(options)) {
15761576
this.logger.log(LOG_LEVEL.DEBUG, sprintf(LOG_MESSAGES.INVALID_DECIDE_OPTIONS, MODULE_NAME));
15771577
} else {
15781578
options.forEach((option) => {
1579-
// Filter out all provided decide options that are not in OptimizelyDecideOptions[] and
1580-
// are not in the defaultDecideOptions
1581-
if (!this.defaultDecideOptions[option] && OptimizelyDecideOptions[option]) {
1582-
allDecideOptions.push(option);
1579+
// Filter out all provided decide options that are not in OptimizelyDecideOptions[]
1580+
if (OptimizelyDecideOptions[option]) {
1581+
allDecideOptions[option] = true;
15831582
}
15841583
});
15851584
}

0 commit comments

Comments
 (0)