Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"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;
}