UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

41 lines (40 loc) 1.06 kB
import { createNonReactiveMutableStore, createNonReactiveReadonlyStore } from "@tanstack/router-core"; import * as Solid from "solid-js"; import { isServer } from "@tanstack/router-core/isServer"; //#region src/routerStores.ts function createSolidMutableStore(initialValue) { const [signal, setSignal] = Solid.createSignal(initialValue); return { get: signal, set: setSignal }; } function createSolidReadonlyStore(read) { return { get: Solid.createRoot(() => Solid.createMemo(read)) }; } var getStoreFactory = (opts) => { if (isServer ?? opts.isServer) return { createMutableStore: createNonReactiveMutableStore, createReadonlyStore: createNonReactiveReadonlyStore, batch: (fn) => fn() }; let depth = 0; return { createMutableStore: createSolidMutableStore, createReadonlyStore: createSolidReadonlyStore, batch: (fn) => { depth++; try { fn(); } finally { depth--; if (depth === 0) try { Solid.flush(); } catch {} } } }; }; //#endregion export { getStoreFactory }; //# sourceMappingURL=routerStores.js.map