@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
60 lines (59 loc) • 2.42 kB
JavaScript
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 };