@elcrm/storage
v0.1.0
Published
Клиентское хранилище elCRM: KV в памяти + IndexedDB, auth/user и legacy Storage API.
Maintainers
Readme
@elcrm/storage
Клиентское хранилище elCRM: KV в памяти + IndexedDB, токен/пользователь и legacy Storage API.
Установка
npm install @elcrm/storage
# или
bun add @elcrm/storageЗависит от @elcrm/crypto (шифрует user/bookmarks и legacy base в localStorage).
Быстрый старт
Async KV (IndexedDB + memory)
import { idb } from "@elcrm/storage";
await idb.set("profile", { name: "Ada" });
const profile = await idb.get<{ name: string }>("profile");
await idb.remove("profile");Auth-токен
import { setAUTH, getAUTH } from "@elcrm/storage";
setAUTH("jwt…");
const token = getAUTH(); // "" если пусто / "undefined"Legacy Storage (base / temp / select)
import { Storage } from "@elcrm/storage";
// прогрев из IndexedDB или legacy localStorage
Storage.loadBase(["orders", "clients"]);
Storage.setBase("orders", { data: { /* … */ }, time: Date.now() });
const { data, time } = Storage.getBase("orders");
Storage.setData("draft", { title: "…" });
Storage.getData("draft");
Storage.isData("draft");
Storage.setSelect({ status: ["open", "closed"] });
Storage.getSelect("status");Пользователь (через @elcrm/crypto)
import { setUser, getUser, initUser, isUser } from "@elcrm/storage";
setUser({ id: 1, name: "Ada" });
const user = getUser();
const name = getUser("name");
await initUser(); // читает localStorage "u", иначе logoutБраузер
import { getBrowser, isBrowser } from "@elcrm/storage";
getBrowser(); // "Chrome" | "Safari" | …
isBrowser("Firefox");API
| Экспорт | Назначение |
| --- | --- |
| idb | async get / set / remove |
| Storage | loadBase, getBase, setBase, setData, getData, isData, editBase, select |
| setAUTH / getAUTH | токен в localStorage (a) |
| setUser / getUser / initUser / isUser | пользователь |
| setBookmarks / getBookmarks | закладки |
| getBrowser / isBrowser | детект UA |
| Logaut | очистка storage + reload |
