UNPKG

tsbase

Version:

Base class libraries for TypeScript

58 lines 2.14 kB
"use strict"; 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