@flexi-ui/storage
Version:
83 lines (82 loc) • 1.78 kB
JavaScript
class o {
constructor(e = "./theme-storage.json") {
this.filePath = e, (void 0)(this.filePath) || (void 0)(this.filePath, JSON.stringify({}));
}
readFile() {
return JSON.parse((void 0)(this.filePath, "utf-8"));
}
writeFile(e) {
(void 0)(this.filePath, JSON.stringify(e, null, 2));
}
get(e) {
return this.readFile()[e] || null;
}
set(e, t) {
const s = this.readFile();
s[e] = t, this.writeFile(s);
}
remove(e) {
const t = this.readFile();
delete t[e], this.writeFile(t);
}
clear() {
this.writeFile({});
}
}
const l = 60 * 60 * 24 * 7;
class h {
constructor(e = "", t = localStorage) {
this.storage = t, this.prefixKey = e;
}
getKey(e) {
return `${this.prefixKey}${e}`.toUpperCase();
}
set(e, t, s = l) {
const r = JSON.stringify({
value: t,
expire: s !== null ? (/* @__PURE__ */ new Date()).getTime() + s * 1e3 : null
});
this.storage.setItem(this.getKey(e), r);
}
get(e, t = null) {
const s = this.storage.getItem(this.getKey(e));
if (s)
try {
const r = JSON.parse(s), { value: n, expire: a } = r;
return a !== null && a < Date.now() ? (this.remove(e), t) : n;
} catch {
return t;
}
return t;
}
remove(e) {
this.storage.removeItem(this.getKey(e));
}
clear() {
this.storage.clear();
}
}
class c {
constructor() {
this.store = /* @__PURE__ */ new Map();
}
get(e) {
const t = this.store.get(e);
return t ? JSON.parse(t) : null;
}
set(e, t) {
this.store.set(e, JSON.stringify(t));
}
remove(e) {
this.store.delete(e);
}
clear() {
this.store.clear();
}
}
export {
o as FileStorage,
h as LocalStorage,
c as MemoryStorage
};
//# sourceMappingURL=lib.js.map