@the-control-group/react-split-test
Version:
A/B Split Testing Component for React
32 lines (31 loc) • 1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearAllExperimentCaches = exports.clearExperimentCache = exports.getCachedVariation = exports.Variation = exports.Experiment = void 0;
var Experiment_1 = require("./Experiment");
Object.defineProperty(exports, "Experiment", { enumerable: true, get: function () { return __importDefault(Experiment_1).default; } });
var Variation_1 = require("./Variation");
Object.defineProperty(exports, "Variation", { enumerable: true, get: function () { return __importDefault(Variation_1).default; } });
// These only work for persisted variations
function getCachedVariation(id) {
const cachedVariation = localStorage.getItem(`@tcg-split-test:${id}`);
if (cachedVariation) {
try {
return JSON.parse(cachedVariation);
}
catch (e) {
console.error('Invalid variation data', e);
}
}
}
exports.getCachedVariation = getCachedVariation;
function clearExperimentCache(id) {
localStorage.removeItem(`@tcg-split-test:${id}`);
}
exports.clearExperimentCache = clearExperimentCache;
function clearAllExperimentCaches() {
Object.keys(localStorage).forEach(k => /^@tcg-split-test:/.test(k) && localStorage.removeItem(k));
}
exports.clearAllExperimentCaches = clearAllExperimentCaches;