* be able to reset the store instance between requests on the server
*/
-export const storesMap = new WeakMap<
- NonNullObject,
- Record<string, GenericStore>
->()
+export const storesMap = new WeakMap<NonNullObject, Map<string, GenericStore>>()
/**
* A state provider allows to set how states are stored for hydration. e.g. setting a property on a context, getting a property from window
if (!stores) return {}
const rootState = {} as Record<string, StateTree>
- for (const store of Object.values(stores)) {
+ // forEach is the only one that also works on IE11
+ stores.forEach(store => {
rootState[store.id] = store.state
- }
+ })
return rootState
}
if (reqKey) setActiveReq(reqKey)
const req = getActiveReq()
let stores = storesMap.get(req)
- if (!stores) storesMap.set(req, (stores = {}))
+ if (!stores) storesMap.set(req, (stores = new Map()))
- let store = stores[id] as Store<Id, S, G, A>
+ let store = stores.get(id) as Store<Id, S, G, A>
if (!store) {
- stores[id] = store = buildStore(
+ stores.set(
id,
- state,
- getters,
- actions,
- getInitialState(id)
+ (store = buildStore(id, state, getters, actions, getInitialState(id)))
)
if (isClient) useStoreDevtools(store)