UNPKG

peadb

Version:

"Pea sized JavaScript DB: wrapper for browser storage APIs"

42 lines 1.45 kB
export default class SessionDB { constructor(dataKey) { this.storage = window.sessionStorage; this.dbKey = dataKey ? dataKey.toString() : Date.now().toString(36); } get(key) { let objArray = JSON.parse(this.storage.getItem(this.dbKey)); return objArray.find((item) => item.key == key); } getAll() { let dbValues = JSON.parse(this.storage.getItem(this.dbKey)) || []; let values = [...dbValues]; return values; } set(key, value) { let prevDbValues = JSON.parse(this.storage.getItem(this.dbKey)) || []; let newDbValues = [ ...prevDbValues, { key: key, value: value ? typeof value == "object" ? value : value.toString() : "", }, ]; this.storage.setItem(this.dbKey, JSON.stringify(newDbValues)); } delete(key) { let prevDbValues = JSON.parse(this.storage.getItem(this.dbKey)) || []; let filteredDbValues = prevDbValues.filter((item) => item.key !== key); this.storage.setItem(this.dbKey, JSON.stringify(filteredDbValues)); } deleteAll() { this.storage.setItem(this.dbKey, null); } nukeDB() { this.storage.removeItem(this.dbKey); } } //# sourceMappingURL=sessiondb.js.map