session.mjs
584 Bytes
import NodeCache from 'node-cache'
import { configureStore } from '@reduxjs/toolkit'
export const sessionStoreCache = new NodeCache({
stdTTL: 600, // in seconds
useClones: false,
})
export const createGetSessionStore = (storeConfig) => (session) => {
const getStore = (sessionId) => {
const currentStore = sessionStoreCache.get(sessionId)
if (currentStore) return currentStore
const newStore = configureStore(storeConfig)
sessionStoreCache.set(sessionId, newStore)
return newStore
}
const { id: sessionId } = session
return getStore(sessionId)
}