UNPKG

react-experiment-hoc

Version:

Simple hoc to provide a/b-test features.

26 lines (21 loc) 900 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getVariant = void 0; var _weighted = _interopRequireDefault(require("./weighted")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getVariant = function getVariant(variants, experiment, fallback, persistent, setCookie, getCookie) { var key = "experiment_".concat(experiment).concat(persistent); var cookieIndex = getCookie(key); var index = cookieIndex; if (!index || !variants[index] || persistent < 0) index = (0, _weighted["default"])(variants.map(function (v) { return v.weight; })); if (!cookieIndex && !fallback && persistent >= 0) setCookie(key, index, { path: '/', expires: !persistent ? null : new Date(Date.now() + 60 * 60 * 24 * 365 * 10 * 1000) }); return variants[index].name; }; exports.getVariant = getVariant;