UNPKG

@splitsoftware/splitio-commons

Version:
82 lines (81 loc) 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MySegmentsCacheInLocal = void 0; var tslib_1 = require("tslib"); var lang_1 = require("../../utils/lang"); var AbstractMySegmentsCacheSync_1 = require("../AbstractMySegmentsCacheSync"); var constants_1 = require("./constants"); var MySegmentsCacheInLocal = /** @class */ (function (_super) { (0, tslib_1.__extends)(MySegmentsCacheInLocal, _super); function MySegmentsCacheInLocal(log, keys) { var _this = _super.call(this) || this; _this.log = log; _this.keys = keys; return _this; // There is not need to flush segments cache like splits cache, since resetSegments receives the up-to-date list of active segments } MySegmentsCacheInLocal.prototype.addSegment = function (name) { var segmentKey = this.keys.buildSegmentNameKey(name); try { if (localStorage.getItem(segmentKey) === constants_1.DEFINED) return false; localStorage.setItem(segmentKey, constants_1.DEFINED); return true; } catch (e) { this.log.error(constants_1.LOG_PREFIX + e); return false; } }; MySegmentsCacheInLocal.prototype.removeSegment = function (name) { var segmentKey = this.keys.buildSegmentNameKey(name); try { if (localStorage.getItem(segmentKey) !== constants_1.DEFINED) return false; localStorage.removeItem(segmentKey); return true; } catch (e) { this.log.error(constants_1.LOG_PREFIX + e); return false; } }; MySegmentsCacheInLocal.prototype.isInSegment = function (name) { return localStorage.getItem(this.keys.buildSegmentNameKey(name)) === constants_1.DEFINED; }; MySegmentsCacheInLocal.prototype.getRegisteredSegments = function () { var _this = this; // Scan current values from localStorage return Object.keys(localStorage).reduce(function (accum, key) { var segmentName = _this.keys.extractSegmentName(key); if (segmentName) accum.push(segmentName); return accum; }, []); }; MySegmentsCacheInLocal.prototype.getKeysCount = function () { return 1; }; MySegmentsCacheInLocal.prototype.setChangeNumber = function (changeNumber) { try { if (changeNumber) localStorage.setItem(this.keys.buildTillKey(), changeNumber + ''); else localStorage.removeItem(this.keys.buildTillKey()); } catch (e) { this.log.error(e); } }; MySegmentsCacheInLocal.prototype.getChangeNumber = function () { var n = -1; var value = localStorage.getItem(this.keys.buildTillKey()); if (value !== null) { value = parseInt(value, 10); return (0, lang_1.isNaNNumber)(value) ? n : value; } return n; }; return MySegmentsCacheInLocal; }(AbstractMySegmentsCacheSync_1.AbstractMySegmentsCacheSync)); exports.MySegmentsCacheInLocal = MySegmentsCacheInLocal;