peadb
Version:
"Pea sized JavaScript DB: wrapper for browser storage APIs"
42 lines • 1.45 kB
JavaScript
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