UNPKG

@roochnetwork/rooch-sdk-kit

Version:
86 lines (84 loc) 2.91 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/provider/sessionStore.ts var sessionStore_exports = {}; __export(sessionStore_exports, { createSessionStore: () => createSessionStore }); module.exports = __toCommonJS(sessionStore_exports); var import_zustand = require("zustand"); var import_middleware = require("zustand/middleware"); var import_rooch_sdk = require("@roochnetwork/rooch-sdk"); function createSessionStore({ storage, storageKey, sessionConf }) { return (0, import_zustand.createStore)()( (0, import_middleware.persist)( (set, get) => ({ sessions: [], currentSession: null, sessionConf, addSession(session) { const cache = get().sessions; cache.push(session); set(() => ({ sessions: cache })); }, setCurrentSession(session) { if (!session) { set(() => ({ currentSession: null })); } else { const cache = get().sessions; if (!cache.find((item) => item.getAuthKey() === session.getAuthKey())) { cache.push(session); } set(() => ({ currentSession: session, sessions: cache })); } }, removeSession(session) { const cacheSessions = get().sessions; const cacheCurSession = get().currentSession; set(() => ({ currentSession: cacheCurSession?.getAuthKey() === session.getAuthKey() ? null : cacheCurSession, sessions: cacheSessions.filter((c) => c.getAuthKey() !== session.getAuthKey()) })); } }), { name: storageKey, storage: (0, import_middleware.createJSONStorage)(() => storage, { reviver: (key, value) => { if (key === "sessions") { return value.map((session) => import_rooch_sdk.Session.fromJson(session)); } return value; } }), partialize: ({ sessions }) => ({ sessions }) } ) ); } //# sourceMappingURL=sessionStore.js.map