UNPKG

@splitsoftware/splitio-commons

Version:
60 lines (59 loc) 2.42 kB
import { __extends } from "tslib"; import { isNaNNumber } from '../../utils/lang'; import { AbstractMySegmentsCacheSync } from '../AbstractMySegmentsCacheSync'; import { DEFINED } from './constants'; var MySegmentsCacheInLocal = /** @class */ (function (_super) { __extends(MySegmentsCacheInLocal, _super); function MySegmentsCacheInLocal(_log, keys, storage) { var _this = _super.call(this) || this; _this.keys = keys; _this.storage = storage; return _this; } MySegmentsCacheInLocal.prototype.addSegment = function (name) { var segmentKey = this.keys.buildSegmentNameKey(name); if (this.storage.getItem(segmentKey) === DEFINED) return false; this.storage.setItem(segmentKey, DEFINED); return true; }; MySegmentsCacheInLocal.prototype.removeSegment = function (name) { var segmentKey = this.keys.buildSegmentNameKey(name); if (this.storage.getItem(segmentKey) !== DEFINED) return false; this.storage.removeItem(segmentKey); return true; }; MySegmentsCacheInLocal.prototype.isInSegment = function (name) { return this.storage.getItem(this.keys.buildSegmentNameKey(name)) === DEFINED; }; MySegmentsCacheInLocal.prototype.getRegisteredSegments = function () { var registeredSegments = []; for (var i = 0, len = this.storage.length; i < len; i++) { var segmentName = this.keys.extractSegmentName(this.storage.key(i)); if (segmentName) registeredSegments.push(segmentName); } return registeredSegments; }; MySegmentsCacheInLocal.prototype.getKeysCount = function () { return 1; }; MySegmentsCacheInLocal.prototype.setChangeNumber = function (changeNumber) { if (changeNumber) this.storage.setItem(this.keys.buildTillKey(), changeNumber + ''); else this.storage.removeItem(this.keys.buildTillKey()); }; MySegmentsCacheInLocal.prototype.getChangeNumber = function () { var n = -1; var value = this.storage.getItem(this.keys.buildTillKey()); if (value !== null) { value = parseInt(value, 10); return isNaNNumber(value) ? n : value; } return n; }; return MySegmentsCacheInLocal; }(AbstractMySegmentsCacheSync)); export { MySegmentsCacheInLocal };