UNPKG

@flexi-ui/storage

Version:
83 lines (82 loc) 1.78 kB
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