@etsoo/shared
Version:
TypeScript shared utilities and functions
116 lines (115 loc) • 3.16 kB
JavaScript
;
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;