mirror of
https://codeberg.org/emersion/gamja.git
synced 2024-11-28 18:26:19 -05:00
695b02caaa
Responsible for serializing/deserializing data to be saved in localStorage. Add a prefix to all localStorage entries to avoid conflicts with other webapps. Stop guarding against localStorage not existing, browsers can just implement a dumb interface to disable it.
46 lines
680 B
JavaScript
46 lines
680 B
JavaScript
const PREFIX = "gamja_";
|
|
|
|
function getItem(k) {
|
|
k = PREFIX + k;
|
|
|
|
}
|
|
|
|
function setItem(k, v) {
|
|
k = PREFIX + k;
|
|
}
|
|
|
|
class Item {
|
|
constructor(k) {
|
|
this.k = PREFIX + k;
|
|
}
|
|
|
|
load() {
|
|
var v = localStorage.getItem(this.k);
|
|
if (!v) {
|
|
return null;
|
|
}
|
|
return JSON.parse(v);
|
|
}
|
|
|
|
put(v) {
|
|
if (v) {
|
|
localStorage.setItem(this.k, JSON.stringify(v));
|
|
} else {
|
|
localStorage.removeItem(this.k);
|
|
}
|
|
}
|
|
}
|
|
|
|
export const autoconnect = new Item("autoconnect");
|
|
|
|
const rawReceipts = new Item("receipts");
|
|
|
|
export const receipts = {
|
|
load() {
|
|
var v = rawReceipts.load();
|
|
return new Map(Object.entries(v || {}));
|
|
},
|
|
put(m) {
|
|
rawReceipts.put(Object.fromEntries(m));
|
|
},
|
|
};
|