@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
63 lines (62 loc) • 2.65 kB
JavaScript
"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) {
tslib_1.__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) === constants_1.DEFINED)
return false;
this.storage.setItem(segmentKey, constants_1.DEFINED);
return true;
};
MySegmentsCacheInLocal.prototype.removeSegment = function (name) {
var segmentKey = this.keys.buildSegmentNameKey(name);
if (this.storage.getItem(segmentKey) !== constants_1.DEFINED)
return false;
this.storage.removeItem(segmentKey);
return true;
};
MySegmentsCacheInLocal.prototype.isInSegment = function (name) {
return this.storage.getItem(this.keys.buildSegmentNameKey(name)) === constants_1.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 (0, lang_1.isNaNNumber)(value) ? n : value;
}
return n;
};
return MySegmentsCacheInLocal;
}(AbstractMySegmentsCacheSync_1.AbstractMySegmentsCacheSync));
exports.MySegmentsCacheInLocal = MySegmentsCacheInLocal;