UNPKG

@etsoo/shared

Version:

TypeScript shared utilities and functions

116 lines (115 loc) 3.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WindowStorage = void 0; const StorageUtils_1 = require("../StorageUtils"); const Utils_1 = require("../Utils"); /** * Window storage * https://developer.mozilla.org/en-US/docs/Web/API/Storage */ class WindowStorage { /** * Clear keys * @param keys Keys * @param persisted Persisted or session data */ clear(keys, persisted) { keys.forEach((key) => { if (persisted) this.setPersistedData(key, undefined); else this.setData(key, undefined); }); } /** * Copy keys to session from persisted source * @param keys Keys * @param removeSource Remove from the source */ copyFrom(keys, removeSource) { keys.forEach((key) => { this.setData(key, this.getPersistedData(key)); if (removeSource) this.setPersistedData(key, undefined); }); } /** * Copy keys to persisted source * @param keys Keys * @param removeSource Remove from the source */ copyTo(keys, removeSource) { keys.forEach((key) => { this.setPersistedData(key, this.getData(key)); if (removeSource) this.setData(key, undefined); }); } /** * Get data * @param key Key name * @param defaultValue Default value */ getData(key, defaultValue) { // Get storage const data = sessionStorage.getItem(key); // No default value if (defaultValue == null) return Utils_1.Utils.parseString(data); // Return return Utils_1.Utils.parseString(data, defaultValue); } /** * Get persisted data * @param key Key name * @param defaultValue Default value */ getPersistedData(key, defaultValue) { // Get storage const data = localStorage.getItem(key); // No default value if (defaultValue == null) return Utils_1.Utils.parseString(data); // Return return Utils_1.Utils.parseString(data, defaultValue); } /** * Get object data * @param key Key name */ getObject(key) { // Get storage const data = sessionStorage.getItem(key); if (data == null) return undefined; return JSON.parse(data); } /** * Get persisted object data * @param key Key name */ getPersistedObject(key) { // Get storage const data = localStorage.getItem(key); if (data == null) return undefined; return JSON.parse(data); } /** * Set data * @param key Key name * @param data Data, null for removal */ setData(key, data) { StorageUtils_1.StorageUtils.setSessionData(key, data); } /** * Set persisted data * @param key Key name * @param data Data, null for removal */ setPersistedData(key, data) { StorageUtils_1.StorageUtils.setLocalData(key, data); } } exports.WindowStorage = WindowStorage;