react-abtest
Version:
A simple React and React Native AB test component.
34 lines (26 loc) • 873 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _utils = require("./utils");
var experimentUniqueIdWeighedGroup = function experimentUniqueIdWeighedGroup(_ref) {
var experimentName = _ref.experimentName,
uid = _ref.uid,
weights = _ref.weights,
logger = _ref.logger;
if (weights.length === 0) {
return null;
}
var hash = (0, _utils.createHash)(uid + experimentName);
var totWeight = (0, _utils.totalWeight)(weights);
var hashFloat = parseFloat("0.".concat(hash));
var rangeVal = (0, _utils.customRange)(hashFloat, 0.0, totWeight);
var variant = (0, _utils.getWeighedIndex)(weights, rangeVal);
if (logger && typeof logger === 'function') {
logger(variant);
}
return variant;
};
var _default = experimentUniqueIdWeighedGroup;
exports["default"] = _default;