tsbase
Version:
Base class libraries for TypeScript
58 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DomStoragePersister = void 0;
var Command_1 = require("../../../Patterns/CommandQuery/Command");
var DomStorageUndefined = 'DomStorageUndefined - Unable to use DomStoragePersister since, \"Storage\" is not defined';
/**
* Persists data using the html DomStorage apis (local and session)
*/
var DomStoragePersister = /** @class */ (function () {
function DomStoragePersister(key, storageType) {
this.key = key;
this.storageType = storageType;
new Command_1.Command(function () {
if (typeof (Storage) === 'undefined') {
throw new Error(DomStorageUndefined);
}
}).Execute();
}
DomStoragePersister.prototype.Purge = function () {
if (this.storageType === 'session') {
window.sessionStorage.removeItem(this.key);
}
else {
window.localStorage.removeItem(this.key);
}
};
DomStoragePersister.prototype.Retrieve = function () {
var storedData = this.getItemFromDomStorage(this.key);
storedData = JSON.parse(storedData);
return storedData ? storedData : [];
};
DomStoragePersister.prototype.Persist = function (items) {
var stringifiedItems = JSON.stringify(items);
this.Purge();
this.saveItemToDomStorage(this.key, stringifiedItems);
};
DomStoragePersister.prototype.saveItemToDomStorage = function (key, item) {
if (this.storageType === 'session') {
window.sessionStorage.setItem(key, item);
}
else {
window.localStorage.setItem(key, item);
}
};
DomStoragePersister.prototype.getItemFromDomStorage = function (key) {
var item;
if (this.storageType === 'session') {
item = window.sessionStorage.getItem(key);
}
else {
item = window.localStorage.getItem(key);
}
return item;
};
return DomStoragePersister;
}());
exports.DomStoragePersister = DomStoragePersister;
//# sourceMappingURL=DomStoragePersister.js.map