peadb
Version:
"Pea sized JavaScript DB: wrapper for browser storage APIs"
46 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class SessionDB {
constructor(dataKey) {
this.dbKey = null;
this.storage = window.localStorage;
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);
}
}
exports.default = SessionDB;
//# sourceMappingURL=localdb.js.map