tinybase 7.0.0-beta.1 → 7.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/common/index.d.ts +1 -1
- package/@types/mergeable-store/index.d.ts +2 -1
- package/@types/mergeable-store/with-schemas/index.d.ts +5 -3
- package/@types/omni/index.d.ts +2 -0
- package/@types/omni/with-schemas/index.d.ts +2 -0
- package/@types/persisters/index.d.ts +4 -0
- package/@types/persisters/persister-automerge/index.d.ts +4 -6
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +7 -8
- package/@types/persisters/persister-browser/index.d.ts +97 -6
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +113 -6
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +6 -2
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +5 -0
- package/@types/persisters/persister-durable-object-storage/index.d.ts +1 -2
- package/@types/persisters/persister-durable-object-storage/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-expo-sqlite/index.d.ts +5 -2
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-file/index.d.ts +1 -2
- package/@types/persisters/persister-file/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-libsql/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-pglite/index.d.ts +7 -3
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +9 -3
- package/@types/persisters/persister-postgres/index.d.ts +5 -2
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-powersync/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-react-native-mmkv/index.d.ts +117 -0
- package/@types/persisters/persister-react-native-mmkv/with-schemas/index.d.ts +133 -0
- package/@types/persisters/persister-react-native-sqlite/index.d.ts +184 -0
- package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +207 -0
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-sqlite-bun/index.d.ts +5 -2
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +6 -2
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +8 -2
- package/@types/persisters/persister-sqlite3/index.d.ts +5 -2
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +3 -2
- package/@types/persisters/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +1 -1
- package/@types/queries/with-schemas/index.d.ts +4 -8
- package/@types/store/index.d.ts +34 -19
- package/@types/store/with-schemas/index.d.ts +28 -13
- package/@types/synchronizers/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -2
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +3 -2
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +4 -2
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +1 -1
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +1 -1
- package/@types/synchronizers/with-schemas/index.d.ts +4 -2
- package/@types/ui-react/index.d.ts +6 -1
- package/@types/ui-react/with-schemas/index.d.ts +6 -1
- package/@types/ui-react-dom/index.d.ts +153 -20
- package/@types/ui-react-dom/with-schemas/index.d.ts +72 -20
- package/@types/ui-react-inspector/index.d.ts +8 -0
- package/@types/ui-react-inspector/with-schemas/index.d.ts +27 -1925
- package/agents.md +343 -0
- package/checkpoints/index.js +11 -6
- package/checkpoints/with-schemas/index.js +11 -6
- package/common/index.js +8 -4
- package/common/with-schemas/index.js +8 -4
- package/index.js +63 -31
- package/indexes/index.js +10 -5
- package/indexes/with-schemas/index.js +10 -5
- package/mergeable-store/index.js +54 -22
- package/mergeable-store/with-schemas/index.js +54 -22
- package/metrics/index.js +10 -5
- package/metrics/with-schemas/index.js +10 -5
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/common/index.js +1 -1
- package/min/common/index.js.gz +0 -0
- package/min/common/with-schemas/index.js +1 -1
- package/min/common/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/indexes/index.js +1 -1
- package/min/indexes/index.js.gz +0 -0
- package/min/indexes/with-schemas/index.js +1 -1
- package/min/indexes/with-schemas/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/index.js +1 -1
- package/min/persisters/persister-partykit-server/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -0
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -0
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +2178 -1203
- package/omni/with-schemas/index.js +2178 -1203
- package/package.json +91 -11
- package/persisters/index.js +16 -10
- package/persisters/persister-automerge/index.js +15 -9
- package/persisters/persister-automerge/with-schemas/index.js +15 -9
- package/persisters/persister-browser/index.js +41 -9
- package/persisters/persister-browser/with-schemas/index.js +41 -9
- package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
- package/persisters/persister-durable-object-sql-storage/index.js +16 -10
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
- package/persisters/persister-durable-object-storage/index.js +14 -8
- package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
- package/persisters/persister-electric-sql/index.js +16 -10
- package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
- package/persisters/persister-expo-sqlite/index.js +16 -10
- package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
- package/persisters/persister-file/index.js +14 -8
- package/persisters/persister-file/with-schemas/index.js +14 -8
- package/persisters/persister-indexed-db/index.js +14 -8
- package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
- package/persisters/persister-libsql/index.js +16 -10
- package/persisters/persister-libsql/with-schemas/index.js +16 -10
- package/persisters/persister-partykit-client/index.js +14 -8
- package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
- package/persisters/persister-partykit-server/index.js +7 -3
- package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
- package/persisters/persister-pglite/index.js +15 -9
- package/persisters/persister-pglite/with-schemas/index.js +15 -9
- package/persisters/persister-postgres/index.js +15 -9
- package/persisters/persister-postgres/with-schemas/index.js +15 -9
- package/persisters/persister-powersync/index.js +16 -10
- package/persisters/persister-powersync/with-schemas/index.js +16 -10
- package/persisters/persister-react-native-mmkv/index.js +465 -0
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +465 -0
- package/persisters/persister-react-native-sqlite/index.js +1195 -0
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +1195 -0
- package/persisters/persister-remote/index.js +16 -10
- package/persisters/persister-remote/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite-bun/index.js +16 -10
- package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite-wasm/index.js +16 -10
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite3/index.js +16 -10
- package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
- package/persisters/persister-yjs/index.js +20 -12
- package/persisters/persister-yjs/with-schemas/index.js +20 -12
- package/persisters/with-schemas/index.js +16 -10
- package/queries/index.js +20 -12
- package/queries/with-schemas/index.js +20 -12
- package/readme.md +13 -13
- package/relationships/index.js +10 -5
- package/relationships/with-schemas/index.js +10 -5
- package/releases.md +179 -41
- package/store/index.js +50 -18
- package/store/with-schemas/index.js +50 -18
- package/synchronizers/index.js +16 -10
- package/synchronizers/synchronizer-broadcast-channel/index.js +17 -11
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -11
- package/synchronizers/synchronizer-local/index.js +17 -11
- package/synchronizers/synchronizer-local/with-schemas/index.js +17 -11
- package/synchronizers/synchronizer-ws-client/index.js +16 -10
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server/index.js +16 -10
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
- package/synchronizers/with-schemas/index.js +16 -10
- package/ui-react/index.js +408 -374
- package/ui-react/with-schemas/index.js +408 -374
- package/ui-react-dom/index.js +883 -437
- package/ui-react-dom/with-schemas/index.js +883 -437
- package/ui-react-inspector/index.js +1761 -556
- package/ui-react-inspector/with-schemas/index.js +1761 -556
- package/with-schemas/index.js +63 -31
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-react-native-sqlite module of the TinyBase project lets you
|
|
3
|
+
* save and load Store data to and from a SQLite database using the
|
|
4
|
+
* [`react-native-sqlite-storage`](https://github.com/andpor/react-native-sqlite-storage) module (in an appropriate React Native
|
|
5
|
+
* environment).
|
|
6
|
+
* @see Database Persistence guide
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module persister-react-native-sqlite
|
|
9
|
+
* @since v6.4.0
|
|
10
|
+
*/
|
|
11
|
+
import {type SQLiteDatabase} from 'react-native-sqlite-storage';
|
|
12
|
+
import type {MergeableStore} from '../../mergeable-store/index.d.ts';
|
|
13
|
+
import type {Store} from '../../store/index.d.ts';
|
|
14
|
+
import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The ReactNativeSqlitePersister interface represents a Persister that lets you
|
|
18
|
+
* save and load Store data to and from a `react-native-sqlite-storage`
|
|
19
|
+
* database.
|
|
20
|
+
*
|
|
21
|
+
* You should use the createReactNativeSqlitePersister function to create an
|
|
22
|
+
* ReactNativeSqlitePersister object.
|
|
23
|
+
*
|
|
24
|
+
* It is a minor extension to the Persister interface and simply provides an
|
|
25
|
+
* extra getDb method for accessing a reference to the database instance the
|
|
26
|
+
* Store is being persisted to.
|
|
27
|
+
* @category Persister
|
|
28
|
+
* @since v6.4.0
|
|
29
|
+
*/
|
|
30
|
+
export interface ReactNativeSqlitePersister extends Persister<Persists.StoreOrMergeableStore> {
|
|
31
|
+
/**
|
|
32
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
33
|
+
* being persisted to.
|
|
34
|
+
* @returns A reference to the database instance.
|
|
35
|
+
* @example
|
|
36
|
+
* This example creates a Persister object against a newly-created Store and
|
|
37
|
+
* then gets the database instance back out again.
|
|
38
|
+
*
|
|
39
|
+
* ```js yolo
|
|
40
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
41
|
+
* import {createStore} from 'tinybase';
|
|
42
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
43
|
+
*
|
|
44
|
+
* enablePromise(true);
|
|
45
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
46
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
47
|
+
* const persister = createReactNativeSqlitePersister(
|
|
48
|
+
* store,
|
|
49
|
+
* db,
|
|
50
|
+
* 'my_tinybase',
|
|
51
|
+
* );
|
|
52
|
+
* console.log(persister.getDb() == db);
|
|
53
|
+
* // -> true
|
|
54
|
+
*
|
|
55
|
+
* await persister.destroy();
|
|
56
|
+
* ```
|
|
57
|
+
* @category Getter
|
|
58
|
+
* @since v6.4.0
|
|
59
|
+
*/
|
|
60
|
+
getDb(): SQLiteDatabase;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The createReactNativeSqlitePersister function creates an
|
|
65
|
+
* ReactNativeSqlitePersister object that can persist the Store to a local
|
|
66
|
+
* `react-native-sqlite-storage` database.
|
|
67
|
+
*
|
|
68
|
+
* An ReactNativeSqlitePersister supports regular Store objects, and can also be
|
|
69
|
+
* used to persist the metadata of a MergeableStore when using the JSON
|
|
70
|
+
* serialization mode, as described below.
|
|
71
|
+
*
|
|
72
|
+
* As well as providing a reference to the Store to persist, you must provide a
|
|
73
|
+
* `db` parameter which identifies the database instance.
|
|
74
|
+
*
|
|
75
|
+
* **Important note:** the `react-native-sqlite-storage` module must have had
|
|
76
|
+
* promises enabled before the database instance is passed in. Use
|
|
77
|
+
* `SQLite.enablePromise(true)` before initializing the Persister.
|
|
78
|
+
*
|
|
79
|
+
* A database Persister uses one of two modes: either a JSON serialization of
|
|
80
|
+
* the whole Store stored in a single row of a table (the default), or a tabular
|
|
81
|
+
* mapping of Table Ids to database table names and vice-versa).
|
|
82
|
+
*
|
|
83
|
+
* The third argument is a DatabasePersisterConfig object that configures which
|
|
84
|
+
* of those modes to use, and settings for each. If the third argument is simply
|
|
85
|
+
* a string, it is used as the `storeTableName` property of the JSON
|
|
86
|
+
* serialization.
|
|
87
|
+
*
|
|
88
|
+
* See the documentation for the DpcJson and DpcTabular types for more
|
|
89
|
+
* information on how both of those modes can be configured.
|
|
90
|
+
*
|
|
91
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
92
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
93
|
+
* Persistence guide for details.
|
|
94
|
+
* @param store The Store or MergeableStore to persist.
|
|
95
|
+
* @param db The database instance that was returned from
|
|
96
|
+
* `await SQLite.openDatabase(...)`.
|
|
97
|
+
* @param configOrStoreTableName A DatabasePersisterConfig to configure the
|
|
98
|
+
* persistence mode (or a string to set the `storeTableName` property of the
|
|
99
|
+
* JSON serialization).
|
|
100
|
+
* @param onSqlCommand An optional handler called every time the Persister
|
|
101
|
+
* executes a SQL command or query. This is suitable for logging persistence
|
|
102
|
+
* behavior in a development environment.
|
|
103
|
+
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
104
|
+
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
105
|
+
* debugging persistence issues in a development environment.
|
|
106
|
+
* @returns A reference to the new ReactNativeSqlitePersister object.
|
|
107
|
+
* @example
|
|
108
|
+
* This example creates a ReactNativeSqlitePersister object and persists the
|
|
109
|
+
* Store to a local SQLite database as a JSON serialization into the
|
|
110
|
+
* `my_tinybase` table. It makes a change to the database directly and then
|
|
111
|
+
* reloads it back into the Store.
|
|
112
|
+
*
|
|
113
|
+
* ```js yolo
|
|
114
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
115
|
+
* import {createStore} from 'tinybase';
|
|
116
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
117
|
+
*
|
|
118
|
+
* enablePromise(true);
|
|
119
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
120
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
121
|
+
* const persister = createReactNativeSqlitePersister(
|
|
122
|
+
* store,
|
|
123
|
+
* db,
|
|
124
|
+
* 'my_tinybase',
|
|
125
|
+
* );
|
|
126
|
+
*
|
|
127
|
+
* await persister.save();
|
|
128
|
+
* // Store will be saved to the database.
|
|
129
|
+
*
|
|
130
|
+
* console.log(
|
|
131
|
+
* (await db.executeSql('SELECT * FROM my_tinybase;'))[0].rows.raw(),
|
|
132
|
+
* );
|
|
133
|
+
* // -> [{_id: '_', store: '[{"pets":{"fido":{"species":"dog"}}},{}]'}]
|
|
134
|
+
*
|
|
135
|
+
* await db.executeSql(
|
|
136
|
+
* 'UPDATE my_tinybase SET store = ' +
|
|
137
|
+
* `'[{"pets":{"felix":{"species":"cat"}}},{}]' WHERE _id = '_';`,
|
|
138
|
+
* );
|
|
139
|
+
* await persister.load();
|
|
140
|
+
* console.log(store.getTables());
|
|
141
|
+
* // -> {pets: {felix: {species: 'cat'}}}
|
|
142
|
+
*
|
|
143
|
+
* await persister.destroy();
|
|
144
|
+
* ```
|
|
145
|
+
* @example
|
|
146
|
+
* This example creates a ReactNativeSqlitePersister object and persists the
|
|
147
|
+
* Store to a local SQLite database with tabular mapping.
|
|
148
|
+
*
|
|
149
|
+
* ```js yolo
|
|
150
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
151
|
+
* import {createStore} from 'tinybase';
|
|
152
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
153
|
+
*
|
|
154
|
+
* enablePromise(true);
|
|
155
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
156
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
157
|
+
* const persister = createReactNativeSqlitePersister(store, db, {
|
|
158
|
+
* mode: 'tabular',
|
|
159
|
+
* tables: {load: {pets: 'pets'}, save: {pets: 'pets'}},
|
|
160
|
+
* });
|
|
161
|
+
*
|
|
162
|
+
* await persister.save();
|
|
163
|
+
* console.log((await db.executeSql('SELECT * FROM pets;'))[0].rows.raw());
|
|
164
|
+
* // -> [{_id: 'fido', species: 'dog'}]
|
|
165
|
+
*
|
|
166
|
+
* await db.executeSql(
|
|
167
|
+
* `INSERT INTO pets (_id, species) VALUES ('felix', 'cat')`,
|
|
168
|
+
* );
|
|
169
|
+
* await persister.load();
|
|
170
|
+
* console.log(store.getTables());
|
|
171
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
172
|
+
*
|
|
173
|
+
* await persister.destroy();
|
|
174
|
+
* ```
|
|
175
|
+
* @category Creation
|
|
176
|
+
* @since v6.4.0
|
|
177
|
+
*/
|
|
178
|
+
export function createReactNativeSqlitePersister(
|
|
179
|
+
store: Store | MergeableStore,
|
|
180
|
+
db: SQLiteDatabase,
|
|
181
|
+
configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
182
|
+
onSqlCommand?: (sql: string, params?: any[]) => void,
|
|
183
|
+
onIgnoredError?: (error: any) => void,
|
|
184
|
+
): ReactNativeSqlitePersister;
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The persister-react-native-sqlite module of the TinyBase project lets you
|
|
3
|
+
* save and load Store data to and from a SQLite database using the
|
|
4
|
+
* [`react-native-sqlite-storage`](https://github.com/andpor/react-native-sqlite-storage) module (in an appropriate React Native
|
|
5
|
+
* environment).
|
|
6
|
+
* @see Database Persistence guide
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module persister-react-native-sqlite
|
|
9
|
+
* @since v6.4.0
|
|
10
|
+
*/
|
|
11
|
+
import type {SQLiteDatabase} from 'react-native-sqlite-storage';
|
|
12
|
+
import type {MergeableStore} from '../../../mergeable-store/with-schemas/index.d.ts';
|
|
13
|
+
import type {
|
|
14
|
+
OptionalSchemas,
|
|
15
|
+
Store,
|
|
16
|
+
} from '../../../store/with-schemas/index.d.ts';
|
|
17
|
+
import type {
|
|
18
|
+
DatabasePersisterConfig,
|
|
19
|
+
Persister,
|
|
20
|
+
Persists,
|
|
21
|
+
} from '../../with-schemas/index.d.ts';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The ReactNativeSqlitePersister interface represents a Persister that lets you
|
|
25
|
+
* save and load Store data to and from a `react-native-sqlite-storage`
|
|
26
|
+
* database.
|
|
27
|
+
*
|
|
28
|
+
* You should use the createReactNativeSqlitePersister function to create an
|
|
29
|
+
* ReactNativeSqlitePersister object.
|
|
30
|
+
*
|
|
31
|
+
* It is a minor extension to the Persister interface and simply provides an
|
|
32
|
+
* extra getDb method for accessing a reference to the database instance the
|
|
33
|
+
* Store is being persisted to.
|
|
34
|
+
* @category Persister
|
|
35
|
+
* @since v6.4.0
|
|
36
|
+
*/
|
|
37
|
+
export interface ReactNativeSqlitePersister<
|
|
38
|
+
Schemas extends OptionalSchemas,
|
|
39
|
+
> extends Persister<Schemas, Persists.StoreOrMergeableStore> {
|
|
40
|
+
/**
|
|
41
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
42
|
+
* being persisted to.
|
|
43
|
+
* @returns A reference to the database instance.
|
|
44
|
+
* @example
|
|
45
|
+
* This example creates a Persister object against a newly-created Store and
|
|
46
|
+
* then gets the database instance back out again.
|
|
47
|
+
*
|
|
48
|
+
* ```js yolo
|
|
49
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
50
|
+
* import {createStore} from 'tinybase';
|
|
51
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
52
|
+
*
|
|
53
|
+
* enablePromise(true);
|
|
54
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
55
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
56
|
+
* const persister = createReactNativeSqlitePersister(
|
|
57
|
+
* store,
|
|
58
|
+
* db,
|
|
59
|
+
* 'my_tinybase',
|
|
60
|
+
* );
|
|
61
|
+
* console.log(persister.getDb() == db);
|
|
62
|
+
* // -> true
|
|
63
|
+
*
|
|
64
|
+
* await persister.destroy();
|
|
65
|
+
* ```
|
|
66
|
+
* @category Getter
|
|
67
|
+
* @since v6.4.0
|
|
68
|
+
*/
|
|
69
|
+
getDb(): SQLiteDatabase;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The createReactNativeSqlitePersister function creates an
|
|
74
|
+
* ReactNativeSqlitePersister object that can persist the Store to a local
|
|
75
|
+
* `react-native-sqlite-storage` database.
|
|
76
|
+
*
|
|
77
|
+
* This has schema-based typing. The following is a simplified representation:
|
|
78
|
+
*
|
|
79
|
+
* ```ts override
|
|
80
|
+
* createReactNativeSqlitePersister(
|
|
81
|
+
* store: Store | MergeableStore,
|
|
82
|
+
* db: SQLiteDatabase,
|
|
83
|
+
* configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
84
|
+
* onSqlCommand?: (sql: string, params?: any[]) => void,
|
|
85
|
+
* onIgnoredError?: (error: any) => void,
|
|
86
|
+
* ): ReactNativeSqlitePersister;
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* An ReactNativeSqlitePersister supports regular Store objects, and can also be
|
|
90
|
+
* used to persist the metadata of a MergeableStore when using the JSON
|
|
91
|
+
* serialization mode, as described below.
|
|
92
|
+
*
|
|
93
|
+
* As well as providing a reference to the Store to persist, you must provide a
|
|
94
|
+
* `db` parameter which identifies the database instance.
|
|
95
|
+
*
|
|
96
|
+
* **Important note:** the `react-native-sqlite-storage` module must have had
|
|
97
|
+
* promises enabled before the database instance is passed in. Use
|
|
98
|
+
* `SQLite.enablePromise(true)` before initializing the Persister.
|
|
99
|
+
*
|
|
100
|
+
* A database Persister uses one of two modes: either a JSON serialization of
|
|
101
|
+
* the whole Store stored in a single row of a table (the default), or a tabular
|
|
102
|
+
* mapping of Table Ids to database table names and vice-versa).
|
|
103
|
+
*
|
|
104
|
+
* The third argument is a DatabasePersisterConfig object that configures which
|
|
105
|
+
* of those modes to use, and settings for each. If the third argument is simply
|
|
106
|
+
* a string, it is used as the `storeTableName` property of the JSON
|
|
107
|
+
* serialization.
|
|
108
|
+
*
|
|
109
|
+
* See the documentation for the DpcJson and DpcTabular types for more
|
|
110
|
+
* information on how both of those modes can be configured.
|
|
111
|
+
*
|
|
112
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
113
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
114
|
+
* Persistence guide for details.
|
|
115
|
+
* @param store The Store or MergeableStore to persist.
|
|
116
|
+
* @param db The database instance that was returned from
|
|
117
|
+
* `await SQLite.openDatabase(...)`.
|
|
118
|
+
* @param configOrStoreTableName A DatabasePersisterConfig to configure the
|
|
119
|
+
* persistence mode (or a string to set the `storeTableName` property of the
|
|
120
|
+
* JSON serialization).
|
|
121
|
+
* @param onSqlCommand An optional handler called every time the Persister
|
|
122
|
+
* executes a SQL command or query. This is suitable for logging persistence
|
|
123
|
+
* behavior in a development environment.
|
|
124
|
+
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
125
|
+
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
126
|
+
* debugging persistence issues in a development environment.
|
|
127
|
+
* @returns A reference to the new ReactNativeSqlitePersister object.
|
|
128
|
+
* @example
|
|
129
|
+
* This example creates a ReactNativeSqlitePersister object and persists the
|
|
130
|
+
* Store to a local SQLite database as a JSON serialization into the
|
|
131
|
+
* `my_tinybase` table. It makes a change to the database directly and then
|
|
132
|
+
* reloads it back into the Store.
|
|
133
|
+
*
|
|
134
|
+
* ```js yolo
|
|
135
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
136
|
+
* import {createStore} from 'tinybase';
|
|
137
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
138
|
+
*
|
|
139
|
+
* enablePromise(true);
|
|
140
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
141
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
142
|
+
* const persister = createReactNativeSqlitePersister(
|
|
143
|
+
* store,
|
|
144
|
+
* db,
|
|
145
|
+
* 'my_tinybase',
|
|
146
|
+
* );
|
|
147
|
+
*
|
|
148
|
+
* await persister.save();
|
|
149
|
+
* // Store will be saved to the database.
|
|
150
|
+
*
|
|
151
|
+
* console.log(
|
|
152
|
+
* (await db.executeSql('SELECT * FROM my_tinybase;'))[0].rows.raw(),
|
|
153
|
+
* );
|
|
154
|
+
* // -> [{_id: '_', store: '[{"pets":{"fido":{"species":"dog"}}},{}]'}]
|
|
155
|
+
*
|
|
156
|
+
* await db.executeSql(
|
|
157
|
+
* 'UPDATE my_tinybase SET store = ' +
|
|
158
|
+
* `'[{"pets":{"felix":{"species":"cat"}}},{}]' WHERE _id = '_';`,
|
|
159
|
+
* );
|
|
160
|
+
* await persister.load();
|
|
161
|
+
* console.log(store.getTables());
|
|
162
|
+
* // -> {pets: {felix: {species: 'cat'}}}
|
|
163
|
+
*
|
|
164
|
+
* await persister.destroy();
|
|
165
|
+
* ```
|
|
166
|
+
* @example
|
|
167
|
+
* This example creates a ReactNativeSqlitePersister object and persists the
|
|
168
|
+
* Store to a local SQLite database with tabular mapping.
|
|
169
|
+
*
|
|
170
|
+
* ```js yolo
|
|
171
|
+
* import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
172
|
+
* import {createStore} from 'tinybase';
|
|
173
|
+
* import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
|
|
174
|
+
*
|
|
175
|
+
* enablePromise(true);
|
|
176
|
+
* const db = await openDatabase({name: 'my.db', location: 'default'});
|
|
177
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
178
|
+
* const persister = createReactNativeSqlitePersister(store, db, {
|
|
179
|
+
* mode: 'tabular',
|
|
180
|
+
* tables: {load: {pets: 'pets'}, save: {pets: 'pets'}},
|
|
181
|
+
* });
|
|
182
|
+
*
|
|
183
|
+
* await persister.save();
|
|
184
|
+
* console.log((await db.executeSql('SELECT * FROM pets;'))[0].rows.raw());
|
|
185
|
+
* // -> [{_id: 'fido', species: 'dog'}]
|
|
186
|
+
*
|
|
187
|
+
* await db.executeSql(
|
|
188
|
+
* `INSERT INTO pets (_id, species) VALUES ('felix', 'cat')`,
|
|
189
|
+
* );
|
|
190
|
+
* await persister.load();
|
|
191
|
+
* console.log(store.getTables());
|
|
192
|
+
* // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
|
|
193
|
+
*
|
|
194
|
+
* await persister.destroy();
|
|
195
|
+
* ```
|
|
196
|
+
* @category Creation
|
|
197
|
+
* @since v6.4.0
|
|
198
|
+
*/
|
|
199
|
+
export function createReactNativeSqlitePersister<
|
|
200
|
+
Schemas extends OptionalSchemas,
|
|
201
|
+
>(
|
|
202
|
+
store: Store<Schemas> | MergeableStore<Schemas>,
|
|
203
|
+
db: SQLiteDatabase,
|
|
204
|
+
configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
|
|
205
|
+
onSqlCommand?: (sql: string, params?: any[]) => void,
|
|
206
|
+
onIgnoredError?: (error: any) => void,
|
|
207
|
+
): ReactNativeSqlitePersister<Schemas>;
|
|
@@ -24,8 +24,9 @@ import type {Persister} from '../../with-schemas/index.d.ts';
|
|
|
24
24
|
* @category Persister
|
|
25
25
|
* @since v4.3.14
|
|
26
26
|
*/
|
|
27
|
-
export interface RemotePersister<
|
|
28
|
-
extends
|
|
27
|
+
export interface RemotePersister<
|
|
28
|
+
Schemas extends OptionalSchemas,
|
|
29
|
+
> extends Persister<Schemas> {
|
|
29
30
|
/**
|
|
30
31
|
* The getUrls method returns the URLs the Store is being persisted to.
|
|
31
32
|
* @returns The load and save URLs as a two-item array.
|
|
@@ -25,8 +25,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
|
|
|
25
25
|
* @category Persister
|
|
26
26
|
* @since v6.1.0
|
|
27
27
|
*/
|
|
28
|
-
export interface SqliteBunPersister
|
|
29
|
-
extends Persister<Persists.StoreOrMergeableStore> {
|
|
28
|
+
export interface SqliteBunPersister extends Persister<Persists.StoreOrMergeableStore> {
|
|
30
29
|
/**
|
|
31
30
|
* The getDb method returns a reference to the database instance the Store is
|
|
32
31
|
* being persisted to.
|
|
@@ -77,6 +76,10 @@ export interface SqliteBunPersister
|
|
|
77
76
|
*
|
|
78
77
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
79
78
|
* information on how both of those modes can be configured.
|
|
79
|
+
*
|
|
80
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
81
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
82
|
+
* Persistence guide for details.
|
|
80
83
|
* @param store The Store or MergeableStore to persist.
|
|
81
84
|
* @param db The database instance that was returned from `new Database(...)`.
|
|
82
85
|
* @param configOrStoreTableName A DatabasePersisterConfig to configure the
|
|
@@ -32,8 +32,9 @@ import type {
|
|
|
32
32
|
* @category Persister
|
|
33
33
|
* @since v6.1.0
|
|
34
34
|
*/
|
|
35
|
-
export interface SqliteBunPersister<
|
|
36
|
-
extends
|
|
35
|
+
export interface SqliteBunPersister<
|
|
36
|
+
Schemas extends OptionalSchemas,
|
|
37
|
+
> extends Persister<Schemas, Persists.StoreOrMergeableStore> {
|
|
37
38
|
/**
|
|
38
39
|
* The getDb method returns a reference to the database instance the Store is
|
|
39
40
|
* being persisted to.
|
|
@@ -96,6 +97,10 @@ export interface SqliteBunPersister<Schemas extends OptionalSchemas>
|
|
|
96
97
|
*
|
|
97
98
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
98
99
|
* information on how both of those modes can be configured.
|
|
100
|
+
*
|
|
101
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
102
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
103
|
+
* Persistence guide for details.
|
|
99
104
|
* @param store The Store or MergeableStore to persist.
|
|
100
105
|
* @param db The database instance that was returned from `new Database(...)`.
|
|
101
106
|
* @param configOrStoreTableName A DatabasePersisterConfig to configure the
|
|
@@ -24,8 +24,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
|
|
|
24
24
|
* @category Persister
|
|
25
25
|
* @since v4.3.14
|
|
26
26
|
*/
|
|
27
|
-
export interface SqliteWasmPersister
|
|
28
|
-
extends Persister<Persists.StoreOrMergeableStore> {
|
|
27
|
+
export interface SqliteWasmPersister extends Persister<Persists.StoreOrMergeableStore> {
|
|
29
28
|
/**
|
|
30
29
|
* The getDb method returns a reference to the database instance the Store is
|
|
31
30
|
* being persisted to.
|
|
@@ -83,6 +82,10 @@ export interface SqliteWasmPersister
|
|
|
83
82
|
*
|
|
84
83
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
85
84
|
* information on how both of those modes can be configured.
|
|
85
|
+
*
|
|
86
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
87
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
88
|
+
* Persistence guide for details.
|
|
86
89
|
* @param store The Store or MergeableStore to persist.
|
|
87
90
|
* @param sqlite3 The WASM module that was returned from `sqlite3InitModule`.
|
|
88
91
|
* @param db The database instance that was returned from `new
|
|
@@ -163,6 +166,7 @@ export interface SqliteWasmPersister
|
|
|
163
166
|
* await persister.destroy();
|
|
164
167
|
* ```
|
|
165
168
|
* @category Creation
|
|
169
|
+
* @essential Persisting stores
|
|
166
170
|
* @since v4.0.0
|
|
167
171
|
*/
|
|
168
172
|
export function createSqliteWasmPersister(
|
|
@@ -31,8 +31,9 @@ import type {
|
|
|
31
31
|
* @category Persister
|
|
32
32
|
* @since v4.3.14
|
|
33
33
|
*/
|
|
34
|
-
export interface SqliteWasmPersister<
|
|
35
|
-
extends
|
|
34
|
+
export interface SqliteWasmPersister<
|
|
35
|
+
Schemas extends OptionalSchemas,
|
|
36
|
+
> extends Persister<Schemas, Persists.StoreOrMergeableStore> {
|
|
36
37
|
/**
|
|
37
38
|
* The getDb method returns a reference to the database instance the Store is
|
|
38
39
|
* being persisted to.
|
|
@@ -103,6 +104,10 @@ export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
|
103
104
|
*
|
|
104
105
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
105
106
|
* information on how both of those modes can be configured.
|
|
107
|
+
*
|
|
108
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
109
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
110
|
+
* Persistence guide for details.
|
|
106
111
|
* @param store The Store or MergeableStore to persist.
|
|
107
112
|
* @param sqlite3 The WASM module that was returned from `sqlite3InitModule`.
|
|
108
113
|
* @param db The database instance that was returned from `new
|
|
@@ -183,6 +188,7 @@ export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
|
183
188
|
* await persister.destroy();
|
|
184
189
|
* ```
|
|
185
190
|
* @category Creation
|
|
191
|
+
* @essential Persisting stores
|
|
186
192
|
* @since v4.0.0
|
|
187
193
|
*/
|
|
188
194
|
export function createSqliteWasmPersister<Schemas extends OptionalSchemas>(
|
|
@@ -25,8 +25,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
|
|
|
25
25
|
* @category Persister
|
|
26
26
|
* @since v4.3.14
|
|
27
27
|
*/
|
|
28
|
-
export interface Sqlite3Persister
|
|
29
|
-
extends Persister<Persists.StoreOrMergeableStore> {
|
|
28
|
+
export interface Sqlite3Persister extends Persister<Persists.StoreOrMergeableStore> {
|
|
30
29
|
/**
|
|
31
30
|
* The getDb method returns a reference to the database instance the Store is
|
|
32
31
|
* being persisted to.
|
|
@@ -77,6 +76,10 @@ export interface Sqlite3Persister
|
|
|
77
76
|
*
|
|
78
77
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
79
78
|
* information on how both of those modes can be configured.
|
|
79
|
+
*
|
|
80
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
81
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
82
|
+
* Persistence guide for details.
|
|
80
83
|
* @param store The Store or MergeableStore to persist.
|
|
81
84
|
* @param db The database instance that was returned from `new
|
|
82
85
|
* sqlite3.Database(...)`.
|
|
@@ -32,8 +32,9 @@ import type {
|
|
|
32
32
|
* @category Persister
|
|
33
33
|
* @since v4.3.14
|
|
34
34
|
*/
|
|
35
|
-
export interface Sqlite3Persister<
|
|
36
|
-
extends
|
|
35
|
+
export interface Sqlite3Persister<
|
|
36
|
+
Schemas extends OptionalSchemas,
|
|
37
|
+
> extends Persister<Schemas, Persists.StoreOrMergeableStore> {
|
|
37
38
|
/**
|
|
38
39
|
* The getDb method returns a reference to the database instance the Store is
|
|
39
40
|
* being persisted to.
|
|
@@ -96,6 +97,10 @@ export interface Sqlite3Persister<Schemas extends OptionalSchemas>
|
|
|
96
97
|
*
|
|
97
98
|
* See the documentation for the DpcJson and DpcTabular types for more
|
|
98
99
|
* information on how both of those modes can be configured.
|
|
100
|
+
*
|
|
101
|
+
* Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
|
|
102
|
+
* values, making tables dense (every Row has every Cell). See the Database
|
|
103
|
+
* Persistence guide for details.
|
|
99
104
|
* @param store The Store or MergeableStore to persist.
|
|
100
105
|
* @param db The database instance that was returned from `new
|
|
101
106
|
* sqlite3.Database(...)`.
|
|
@@ -30,8 +30,9 @@ import type {Persister} from '../../with-schemas/index.d.ts';
|
|
|
30
30
|
* @category Persister
|
|
31
31
|
* @since v4.3.14
|
|
32
32
|
*/
|
|
33
|
-
export interface YjsPersister<
|
|
34
|
-
extends
|
|
33
|
+
export interface YjsPersister<
|
|
34
|
+
Schemas extends OptionalSchemas,
|
|
35
|
+
> extends Persister<Schemas> {
|
|
35
36
|
/**
|
|
36
37
|
* The getYDoc method returns the Yjs document the Store is being persisted
|
|
37
38
|
* to.
|
|
@@ -13,15 +13,18 @@
|
|
|
13
13
|
* |-|-|-|-|
|
|
14
14
|
* |SessionPersister|Browser session storage|Yes|Yes
|
|
15
15
|
* |LocalPersister|Browser local storage|Yes|Yes
|
|
16
|
+
* |OpfsPersister|Browser origin private file system (OPFS)|Yes|Yes
|
|
16
17
|
* |FilePersister|Local file (where possible)|Yes|Yes
|
|
17
18
|
* |IndexedDbPersister|Browser IndexedDB|Yes|No
|
|
18
19
|
* |RemotePersister|Remote server|Yes|No
|
|
20
|
+
* |ReactNativeMmkvPersister|MMKV in React Native, via [react-native-mmkv](https://github.com/mrousavy/react-native-mmkv)|Yes|Yes
|
|
19
21
|
* |DurableObjectStoragePersister|Cloudflare Durable Object (KV)|No|Yes
|
|
20
22
|
* |DurableObjectSqlStoragePersister|Cloudflare Durable Object (SQLite)|No|Yes
|
|
21
23
|
* |Sqlite3Persister|SQLite in Node, via [sqlite3](https://github.com/TryGhost/node-sqlite3)|Yes|Yes*
|
|
22
24
|
* |SqliteBunPersister| SQLite in Bun, via [bun:sqlite](https://bun.sh/docs/api/sqlite)|Yes|Yes*
|
|
23
25
|
* |SqliteWasmPersister|SQLite in a browser, via [sqlite-wasm](https://github.com/tomayac/sqlite-wasm)|Yes|Yes*
|
|
24
26
|
* |ExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|Yes|Yes*
|
|
27
|
+
* |ReactNativeSqlitePersister|SQLite in React Native, via [react-native-sqlite-storage](https://github.com/andpor/react-native-sqlite-storage)|Yes|Yes*
|
|
25
28
|
* |PostgresPersister|PostgreSQL, via [postgres](https://github.com/porsager/postgres)|Yes|Yes*
|
|
26
29
|
* |PglitePersister|PostgreSQL, via [PGlite](https://github.com/electric-sql/pglite)|Yes|Yes*
|
|
27
30
|
* |CrSqliteWasmPersister|SQLite CRDTs, via [cr-sqlite-wasm](https://github.com/vlcn-io/cr-sqlite)|Yes|No
|
|
@@ -1031,6 +1034,7 @@ export type DpcTabularValues = {
|
|
|
1031
1034
|
* sessionStorage.clear();
|
|
1032
1035
|
* ```
|
|
1033
1036
|
* @category Persister
|
|
1037
|
+
* @essential Persisting stores
|
|
1034
1038
|
* @since v1.0.0
|
|
1035
1039
|
*/
|
|
1036
1040
|
export interface Persister<
|
|
@@ -77,7 +77,7 @@ export type ResultRow = {[cellId: Id]: ResultCell};
|
|
|
77
77
|
* @category Result
|
|
78
78
|
* @since v2.0.0
|
|
79
79
|
*/
|
|
80
|
-
export type ResultCell = string | number | boolean;
|
|
80
|
+
export type ResultCell = string | number | boolean | null;
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
* The ResultCellOrUndefined type is the data structure representing a single
|
|
@@ -766,10 +766,8 @@ export type GetTableCell<
|
|
|
766
766
|
*/
|
|
767
767
|
<
|
|
768
768
|
JoinedTableId extends TableIdFromSchema<Schema> | Id,
|
|
769
|
-
JoinedCellId extends JoinedCellIdOrId<
|
|
770
|
-
Schema,
|
|
771
|
-
JoinedTableId
|
|
772
|
-
> = JoinedCellIdOrId<Schema, JoinedTableId>,
|
|
769
|
+
JoinedCellId extends JoinedCellIdOrId<Schema, JoinedTableId> =
|
|
770
|
+
JoinedCellIdOrId<Schema, JoinedTableId>,
|
|
773
771
|
>(
|
|
774
772
|
joinedTableId: JoinedTableId,
|
|
775
773
|
joinedCellId: JoinedCellId,
|
|
@@ -1476,10 +1474,8 @@ export type Where<
|
|
|
1476
1474
|
*/
|
|
1477
1475
|
<
|
|
1478
1476
|
JoinedTableId extends TableIdFromSchema<Schema> | Id,
|
|
1479
|
-
JoinedCellId extends JoinedCellIdOrId<
|
|
1480
|
-
Schema,
|
|
1481
|
-
JoinedTableId
|
|
1482
|
-
> = JoinedCellIdOrId<Schema, JoinedTableId>,
|
|
1477
|
+
JoinedCellId extends JoinedCellIdOrId<Schema, JoinedTableId> =
|
|
1478
|
+
JoinedCellIdOrId<Schema, JoinedTableId>,
|
|
1483
1479
|
JoinedCell extends Cell<Schema, JoinedTableId, JoinedCellId> = Cell<
|
|
1484
1480
|
Schema,
|
|
1485
1481
|
JoinedTableId,
|