@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
1 lines • 1.98 kB
Source Map (JSON)
{"version":3,"file":"routerStores.cjs","names":[],"sources":["../../src/routerStores.ts"],"sourcesContent":["import * as Solid from 'solid-js'\nimport {\n createNonReactiveMutableStore,\n createNonReactiveReadonlyStore,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport type {\n GetStoreConfig,\n RouterReadableStore,\n RouterWritableStore,\n} from '@tanstack/router-core'\n\nfunction createSolidMutableStore<TValue>(\n initialValue: TValue,\n): RouterWritableStore<TValue> {\n const [signal, setSignal] = Solid.createSignal(initialValue as any)\n\n return { get: signal, set: setSignal }\n}\n\nfunction createSolidReadonlyStore<TValue>(\n read: () => TValue,\n): RouterReadableStore<TValue> {\n return { get: Solid.createRoot(() => Solid.createMemo(read)) }\n}\n\nexport const getStoreFactory: GetStoreConfig = (opts) => {\n if (isServer ?? opts.isServer) {\n return {\n createMutableStore: createNonReactiveMutableStore,\n createReadonlyStore: createNonReactiveReadonlyStore,\n batch: (fn) => fn(),\n }\n }\n\n let depth = 0\n\n return {\n createMutableStore: createSolidMutableStore,\n createReadonlyStore: createSolidReadonlyStore,\n batch: (fn) => {\n depth++\n try {\n fn()\n } finally {\n depth--\n if (depth === 0) {\n try {\n Solid.flush()\n } catch {}\n }\n }\n },\n }\n}\n"],"mappings":";;;;;;AAYA,SAAS,wBACP,cAC6B;CAC7B,MAAM,CAAC,QAAQ,aAAa,SAAM,aAAa,YAAmB;CAElE,OAAO;EAAE,KAAK;EAAQ,KAAK;CAAU;AACvC;AAEA,SAAS,yBACP,MAC6B;CAC7B,OAAO,EAAE,KAAK,SAAM,iBAAiB,SAAM,WAAW,IAAI,CAAC,EAAE;AAC/D;AAEA,IAAa,mBAAmC,SAAS;CACvD,IAAI,+BAAA,YAAY,KAAK,UACnB,OAAO;EACL,oBAAoB,sBAAA;EACpB,qBAAqB,sBAAA;EACrB,QAAQ,OAAO,GAAG;CACpB;CAGF,IAAI,QAAQ;CAEZ,OAAO;EACL,oBAAoB;EACpB,qBAAqB;EACrB,QAAQ,OAAO;GACb;GACA,IAAI;IACF,GAAG;GACL,UAAU;IACR;IACA,IAAI,UAAU,GACZ,IAAI;KACF,SAAM,MAAM;IACd,QAAQ,CAAC;GAEb;EACF;CACF;AACF"}