Repository URL to install this package:
|
Version:
3.6.0 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFirstExperimentId = getFirstExperimentId;
exports.getFirstGlobalExperimentId = getFirstGlobalExperimentId;
/**
* Tries to retrieve an experiment id from the current store state, when one is present.
* This only takes into account experiments mounted by experiments.
*
* This is a selector used with the select effect.
*
* @param {*} state
* @param {string} testName
*/
function getFirstExperimentId(state, testName) {
// Mounted experiments are these experiments currently mounted with withAbTest wrapped components
var mountedExperiments = state.ab && state.ab.mountedExperiments;
// Experiments are all experiments send to the client from Optimize
var experiments = state.ab && state.ab.experiments;
if (mountedExperiments && mountedExperiments[testName]) {
return experiments[testName].experimentId;
}
return undefined;
}
/**
* Tries to retrieve an experiment id from the current store state, when one is present.
* This checks global experiments, set by isGlobal flag.
*
* This is a selector used with the select effect.
*
* @param {*} state
* @param {string} testName
*/
function getFirstGlobalExperimentId(state, testName) {
// Experiments are all experiments send to the client from Optimize
var experiments = state.ab && state.ab.experiments;
var experiment = Boolean(experiments) && Object.keys(experiments).find(function (exper) {
return exper === testName && Boolean(experiments[exper].experimentId) && Boolean(experiments[exper].isGlobal);
});
if (experiment) {
return experiments[experiment].experimentId;
}
return undefined;
}