UNPKG

tsbase

Version:

Base class libraries for TypeScript

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