@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
86 lines (84 loc) • 2.91 kB
JavaScript
;
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