tinybase 5.0.0-beta.1 → 5.0.0-beta.10
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/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/cjs/checkpoints.cjs +1 -1
- package/lib/cjs/checkpoints.cjs.gz +0 -0
- package/lib/cjs/indexes.cjs +1 -1
- package/lib/cjs/indexes.cjs.gz +0 -0
- package/lib/cjs/mergeable-store.cjs +1 -0
- package/lib/cjs/mergeable-store.cjs.gz +0 -0
- package/lib/cjs/metrics.cjs +1 -1
- package/lib/cjs/metrics.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-libsql.cjs +1 -0
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/relationships.cjs +1 -1
- package/lib/cjs/relationships.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs/synchronizers.cjs +1 -0
- package/lib/cjs/synchronizers.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/checkpoints.cjs +1 -1
- package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
- package/lib/cjs-es6/indexes.cjs +1 -1
- package/lib/cjs-es6/indexes.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -0
- package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
- package/lib/cjs-es6/metrics.cjs +1 -1
- package/lib/cjs-es6/metrics.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/relationships.cjs +1 -1
- package/lib/cjs-es6/relationships.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers.cjs +1 -0
- package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/checkpoints.js +3 -1
- package/lib/debug/indexes.js +3 -1
- package/lib/debug/mergeable-store.js +2230 -0
- package/lib/debug/metrics.js +3 -1
- package/lib/debug/persisters/persister-automerge.js +110 -86
- package/lib/debug/persisters/persister-browser.js +94 -57
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +168 -106
- package/lib/debug/persisters/persister-electric-sql.js +168 -106
- package/lib/debug/persisters/persister-expo-sqlite-next.js +168 -106
- package/lib/debug/persisters/persister-expo-sqlite.js +168 -106
- package/lib/debug/persisters/persister-file.js +93 -57
- package/lib/debug/persisters/persister-indexed-db.js +90 -56
- package/lib/debug/persisters/persister-libsql.js +913 -0
- package/lib/debug/persisters/persister-partykit-client.js +89 -59
- package/lib/debug/persisters/persister-partykit-server.js +17 -25
- package/lib/debug/persisters/persister-powersync.js +928 -0
- package/lib/debug/persisters/persister-remote.js +85 -53
- package/lib/debug/persisters/persister-sqlite-wasm.js +168 -106
- package/lib/debug/persisters/persister-sqlite3.js +168 -106
- package/lib/debug/persisters/persister-yjs.js +108 -83
- package/lib/debug/persisters.js +81 -50
- package/lib/debug/queries.js +9 -6
- package/lib/debug/relationships.js +3 -1
- package/lib/debug/store.js +147 -126
- package/lib/debug/synchronizers/synchronizer-local.js +559 -0
- package/lib/debug/synchronizers/synchronizer-ws-client.js +586 -0
- package/lib/debug/synchronizers/synchronizer-ws-server.js +96 -0
- package/lib/debug/synchronizers.js +519 -0
- package/lib/debug/tinybase.js +1027 -174
- package/lib/debug/tools.js +22 -21
- package/lib/debug/ui-react-dom.js +275 -213
- package/lib/debug/ui-react.js +55 -6
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/indexes.js +1 -1
- package/lib/es6/indexes.js.gz +0 -0
- package/lib/es6/mergeable-store.js +1 -0
- package/lib/es6/mergeable-store.js.gz +0 -0
- package/lib/es6/metrics.js +1 -1
- package/lib/es6/metrics.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-libsql.js +1 -0
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -0
- package/lib/es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/relationships.js +1 -1
- package/lib/es6/relationships.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/es6/synchronizers.js +1 -0
- package/lib/es6/synchronizers.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/mergeable-store.js +1 -0
- package/lib/mergeable-store.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-libsql.js +1 -0
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -0
- package/lib/persisters/persister-powersync.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/synchronizers/synchronizer-local.js +1 -0
- package/lib/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/synchronizers.js +1 -0
- package/lib/synchronizers.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/checkpoints.d.ts +2 -2
- package/lib/types/indexes.d.ts +2 -2
- package/lib/types/mergeable-store.d.ts +214 -0
- package/lib/types/metrics.d.ts +2 -2
- package/lib/types/persisters/persister-automerge.d.ts +11 -7
- package/lib/types/persisters/persister-browser.d.ts +13 -4
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
- package/lib/types/persisters/persister-file.d.ts +7 -2
- package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
- package/lib/types/persisters/persister-libsql.d.ts +142 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
- package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
- package/lib/types/persisters/persister-powersync.d.ts +157 -0
- package/lib/types/persisters/persister-remote.d.ts +4 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
- package/lib/types/persisters/persister-yjs.d.ts +6 -2
- package/lib/types/persisters.d.ts +125 -48
- package/lib/types/queries.d.ts +2 -2
- package/lib/types/relationships.d.ts +2 -2
- package/lib/types/store.d.ts +275 -187
- package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
- package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +36 -0
- package/lib/types/synchronizers.d.ts +132 -0
- package/lib/types/tinybase.d.ts +10 -8
- package/lib/types/tools.d.ts +4 -4
- package/lib/types/ui-react.d.ts +160 -9
- package/lib/types/with-schemas/checkpoints.d.ts +2 -2
- package/lib/types/with-schemas/indexes.d.ts +2 -2
- package/lib/types/with-schemas/internal/store.d.ts +4 -0
- package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
- package/lib/types/with-schemas/metrics.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
- package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
- package/lib/types/with-schemas/persisters.d.ts +161 -101
- package/lib/types/with-schemas/queries.d.ts +3 -3
- package/lib/types/with-schemas/relationships.d.ts +2 -2
- package/lib/types/with-schemas/store.d.ts +483 -345
- package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +36 -0
- package/lib/types/with-schemas/synchronizers.d.ts +146 -0
- package/lib/types/with-schemas/tinybase.d.ts +9 -8
- package/lib/types/with-schemas/tools.d.ts +4 -4
- package/lib/types/with-schemas/ui-react.d.ts +177 -9
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -0
- package/lib/umd/mergeable-store.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-libsql.js +1 -0
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -0
- package/lib/umd/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd/synchronizers.js +1 -0
- package/lib/umd/synchronizers.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/indexes.js +1 -1
- package/lib/umd-es6/indexes.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -0
- package/lib/umd-es6/mergeable-store.js.gz +0 -0
- package/lib/umd-es6/metrics.js +1 -1
- package/lib/umd-es6/metrics.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-libsql.js +1 -0
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -0
- package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/relationships.js +1 -1
- package/lib/umd-es6/relationships.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd-es6/synchronizers.js +1 -0
- package/lib/umd-es6/synchronizers.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +65 -45
- package/readme.md +2 -2
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
* |persister-expo-sqlite|createExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|
|
|
23
23
|
* |persister-expo-sqlite-next|createExpoSqliteNextPersister|SQLite in React Native, via [expo-sqlite/next](https://github.com/expo/expo/tree/main/packages/expo-sqlite/next)|
|
|
24
24
|
* |persister-electric-sql|createElectricSqlPersister|Electric SQL, via [electric-sql](https://github.com/electric-sql/electric)|
|
|
25
|
+
* |persister-libsql|createLibSqlPersister|LibSQL for Turso, via [libsql-client](https://github.com/tursodatabase/libsql-client-ts)|
|
|
26
|
+
* |persister-powersync|createPowerSyncPersister|PowerSync, via [powersync-sdk](https://github.com/powersync-ja/powersync-js)|
|
|
25
27
|
* |persister-yjs|createYjsPersister|Yjs CRDTs, via [yjs](https://github.com/yjs/yjs)|
|
|
26
28
|
* |persister-automerge|createSqliteWasmPersister|Automerge CRDTs, via [automerge-repo](https://github.com/automerge/automerge-repo)|
|
|
27
29
|
*
|
|
@@ -39,13 +41,17 @@
|
|
|
39
41
|
*/
|
|
40
42
|
|
|
41
43
|
import {
|
|
42
|
-
|
|
44
|
+
Changes,
|
|
45
|
+
Content,
|
|
43
46
|
OptionalSchemas,
|
|
44
47
|
OptionalTablesSchema,
|
|
45
48
|
Store,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
} from './store.d.ts';
|
|
50
|
+
import {
|
|
51
|
+
MergeableChanges,
|
|
52
|
+
MergeableContent,
|
|
53
|
+
MergeableStore,
|
|
54
|
+
} from './mergeable-store';
|
|
49
55
|
import {TableIdFromSchema} from './internal/store';
|
|
50
56
|
|
|
51
57
|
/**
|
|
@@ -74,28 +80,39 @@ export type PersisterStats = {
|
|
|
74
80
|
* This has schema-based typing. The following is a simplified representation:
|
|
75
81
|
*
|
|
76
82
|
* ```ts override
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
83
|
+
* export type PersisterListener<SupportsMergeableStore extends boolean = false> =
|
|
84
|
+
* (
|
|
85
|
+
* getContent?: () =>
|
|
86
|
+
* | Content
|
|
87
|
+
* | (SupportsMergeableStore extends true ? MergeableContent : never),
|
|
88
|
+
* getChanges?: () =>
|
|
89
|
+
* | Changes
|
|
90
|
+
* | (SupportsMergeableStore extends true ? MergeableChanges : never),
|
|
91
|
+
* ) => void;
|
|
81
92
|
* ```
|
|
82
93
|
*
|
|
83
|
-
* If the listener has the `
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
94
|
+
* If the listener has the `getChanges` parameter, it will be used to make an
|
|
95
|
+
* incremental change to the Store. If not, but the `getContent` function _is_
|
|
96
|
+
* available, that will be used to make a wholesale change to the Store. If
|
|
97
|
+
* neither are present, the content will be loaded from the Persister's load
|
|
98
|
+
* method.
|
|
88
99
|
* @param getContent An optional function that, if provided, returns an array of
|
|
89
100
|
* Store content and can be used to immediately wholesale update the Store.
|
|
90
|
-
* @param
|
|
91
|
-
*
|
|
92
|
-
* update the Store.
|
|
101
|
+
* @param getChanges An optional function that, if provided, returns a Changes
|
|
102
|
+
* object and can be used to immediately incrementally update the Store.
|
|
93
103
|
* @category Creation
|
|
94
104
|
* @since v4.0.0
|
|
95
105
|
*/
|
|
96
|
-
export type PersisterListener<
|
|
97
|
-
|
|
98
|
-
|
|
106
|
+
export type PersisterListener<
|
|
107
|
+
Schemas extends OptionalSchemas,
|
|
108
|
+
SupportsMergeableStore extends boolean = false,
|
|
109
|
+
> = (
|
|
110
|
+
getContent?: () =>
|
|
111
|
+
| Content<Schemas, true>
|
|
112
|
+
| (SupportsMergeableStore extends true ? MergeableContent<Schemas> : never),
|
|
113
|
+
getChanges?: () =>
|
|
114
|
+
| Changes<Schemas>
|
|
115
|
+
| (SupportsMergeableStore extends true ? MergeableChanges<Schemas> : never),
|
|
99
116
|
) => void;
|
|
100
117
|
|
|
101
118
|
/**
|
|
@@ -572,9 +589,9 @@ export type DpcTabularValues = {
|
|
|
572
589
|
*
|
|
573
590
|
* Creating a Persister depends on the choice of underlying storage where the
|
|
574
591
|
* data is to be stored. Options include the createSessionPersister function,
|
|
575
|
-
* the createLocalPersister, the createRemotePersister function, and
|
|
576
|
-
* createFilePersister function. The createCustomPersister function can also
|
|
577
|
-
* used to easily create a fully customized way to save and load Store data.
|
|
592
|
+
* the createLocalPersister function, the createRemotePersister function, and
|
|
593
|
+
* the createFilePersister function. The createCustomPersister function can also
|
|
594
|
+
* be used to easily create a fully customized way to save and load Store data.
|
|
578
595
|
*
|
|
579
596
|
* A Persister lets you explicit save or load data, with the save method and the
|
|
580
597
|
* load method respectively. These methods are both asynchronous (since the
|
|
@@ -643,7 +660,7 @@ export type DpcTabularValues = {
|
|
|
643
660
|
* const store = createStore();
|
|
644
661
|
* const persister = createSessionPersister(store, 'pets');
|
|
645
662
|
*
|
|
646
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
663
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
647
664
|
* await persister.startAutoSave();
|
|
648
665
|
*
|
|
649
666
|
* store.setTables({pets: {felix: {species: 'cat'}}});
|
|
@@ -664,7 +681,10 @@ export type DpcTabularValues = {
|
|
|
664
681
|
* ```
|
|
665
682
|
* @category Persister
|
|
666
683
|
*/
|
|
667
|
-
export interface Persister<
|
|
684
|
+
export interface Persister<
|
|
685
|
+
in out Schemas extends OptionalSchemas,
|
|
686
|
+
SupportsMergeableStore extends boolean = false,
|
|
687
|
+
> {
|
|
668
688
|
/**
|
|
669
689
|
* The load method gets persisted data from storage, and loads it into the
|
|
670
690
|
* Store with which the Persister is associated, once.
|
|
@@ -672,10 +692,10 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
672
692
|
* This has schema-based typing. The following is a simplified representation:
|
|
673
693
|
*
|
|
674
694
|
* ```ts override
|
|
675
|
-
* load(
|
|
695
|
+
* load(initialContent?: Content): Promise<this>;
|
|
676
696
|
* ```
|
|
677
697
|
*
|
|
678
|
-
* The optional
|
|
698
|
+
* The optional parameter allows you to specify what the initial content for
|
|
679
699
|
* the Store will be if there is nothing currently persisted or if the load
|
|
680
700
|
* fails (for example when the Persister is remote and the environment is
|
|
681
701
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -685,10 +705,8 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
685
705
|
* machine or a filesystem. Even for those storage types that are synchronous
|
|
686
706
|
* (like browser storage) it is still recommended that you `await` calls to
|
|
687
707
|
* this method or handle the return type natively as a Promise.
|
|
688
|
-
* @param
|
|
708
|
+
* @param initialContent An optional Content object used when the underlying
|
|
689
709
|
* storage has not previously been populated.
|
|
690
|
-
* @param initialValues An optional Values object used when the underlying
|
|
691
|
-
* storage has not previously been populated, since v3.0.
|
|
692
710
|
* @returns A Promise containing a reference to the Persister object.
|
|
693
711
|
* @example
|
|
694
712
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -717,7 +735,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
717
735
|
* const store = createStore();
|
|
718
736
|
* const persister = createSessionPersister(store, 'pets');
|
|
719
737
|
*
|
|
720
|
-
* await persister.load({pets: {fido: {species: 'dog'}}});
|
|
738
|
+
* await persister.load([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
721
739
|
* console.log(store.getTables());
|
|
722
740
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
723
741
|
*
|
|
@@ -730,10 +748,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
730
748
|
* ```
|
|
731
749
|
* @category Load
|
|
732
750
|
*/
|
|
733
|
-
load(
|
|
734
|
-
initialTables?: Tables<Schemas[0], true>,
|
|
735
|
-
initialValues?: Values<Schemas[1], true>,
|
|
736
|
-
): Promise<Persister<Schemas>>;
|
|
751
|
+
load(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
737
752
|
|
|
738
753
|
/**
|
|
739
754
|
* The startAutoLoad method gets persisted data from storage, and loads it
|
|
@@ -743,13 +758,10 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
743
758
|
* This has schema-based typing. The following is a simplified representation:
|
|
744
759
|
*
|
|
745
760
|
* ```ts override
|
|
746
|
-
* startAutoLoad(
|
|
747
|
-
* initialTables?: Tables,
|
|
748
|
-
* initialValues?: Values,
|
|
749
|
-
* ): Promise<Persister>;
|
|
761
|
+
* startAutoLoad(initialContent?: Content): Promise<this>;
|
|
750
762
|
* ```
|
|
751
763
|
*
|
|
752
|
-
* The optional
|
|
764
|
+
* The optional parameter allows you to specify what the initial content for
|
|
753
765
|
* the Store will be if there is nothing currently persisted or if the load
|
|
754
766
|
* fails (for example when the Persister is remote and the environment is
|
|
755
767
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -764,10 +776,8 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
764
776
|
* the asynchronous load method. Even for those storage types that are
|
|
765
777
|
* synchronous (like browser storage) it is still recommended that you `await`
|
|
766
778
|
* calls to this method or handle the return type natively as a Promise.
|
|
767
|
-
* @param
|
|
779
|
+
* @param initialContent An optional Content object used when the underlying
|
|
768
780
|
* storage has not previously been populated.
|
|
769
|
-
* @param initialValues An optional Values object used when the underlying
|
|
770
|
-
* storage has not previously been populated, since v3.0.
|
|
771
781
|
* @returns A Promise containing a reference to the Persister object.
|
|
772
782
|
* @example
|
|
773
783
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -780,7 +790,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
780
790
|
* const store = createStore();
|
|
781
791
|
* const persister = createSessionPersister(store, 'pets');
|
|
782
792
|
*
|
|
783
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
793
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
784
794
|
* console.log(store.getTables());
|
|
785
795
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
786
796
|
*
|
|
@@ -797,21 +807,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
797
807
|
* ```
|
|
798
808
|
* @category Load
|
|
799
809
|
*/
|
|
800
|
-
startAutoLoad(
|
|
801
|
-
initialTables?: Tables<Schemas[0], true>,
|
|
802
|
-
initialValues?: Values<Schemas[1], true>,
|
|
803
|
-
): Promise<Persister<Schemas>>;
|
|
810
|
+
startAutoLoad(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
804
811
|
|
|
805
812
|
/**
|
|
806
813
|
* The stopAutoLoad method stops the automatic loading of data from storage
|
|
807
814
|
* previously started with the startAutoLoad method.
|
|
808
815
|
*
|
|
809
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
810
|
-
*
|
|
811
|
-
* ```ts override
|
|
812
|
-
* stopAutoLoad(): Persister;
|
|
813
|
-
* ```
|
|
814
|
-
*
|
|
815
816
|
* If the Persister is not currently set to automatically load, this method
|
|
816
817
|
* has no effect.
|
|
817
818
|
* @returns A reference to the Persister object.
|
|
@@ -850,17 +851,38 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
850
851
|
* ```
|
|
851
852
|
* @category Load
|
|
852
853
|
*/
|
|
853
|
-
stopAutoLoad():
|
|
854
|
+
stopAutoLoad(): this;
|
|
854
855
|
|
|
855
856
|
/**
|
|
856
|
-
* The
|
|
857
|
-
*
|
|
857
|
+
* The isAutoLoading method lets you find out if the Persister is currently
|
|
858
|
+
* automatically loading its content.
|
|
859
|
+
* @returns A boolean indicating whether the Persister is currently
|
|
860
|
+
* autoLoading.
|
|
861
|
+
* @example
|
|
862
|
+
* This example creates a Persister and queries whether it is autoLoading.
|
|
858
863
|
*
|
|
859
|
-
*
|
|
864
|
+
* ```js
|
|
865
|
+
* const persister = createSessionPersister(createStore(), 'pets');
|
|
860
866
|
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
867
|
+
* console.log(persister.isAutoLoading());
|
|
868
|
+
* // -> false
|
|
869
|
+
*
|
|
870
|
+
* await persister.startAutoLoad();
|
|
871
|
+
* console.log(persister.isAutoLoading());
|
|
872
|
+
* // -> true
|
|
873
|
+
*
|
|
874
|
+
* await persister.stopAutoLoad();
|
|
875
|
+
* console.log(persister.isAutoLoading());
|
|
876
|
+
* // -> false
|
|
863
877
|
* ```
|
|
878
|
+
* @category Load
|
|
879
|
+
* @since v5.0.0
|
|
880
|
+
*/
|
|
881
|
+
isAutoLoading(): boolean;
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* The save method takes data from the Store with which the Persister is
|
|
885
|
+
* associated and persists it into storage, once.
|
|
864
886
|
*
|
|
865
887
|
* This method is asynchronous because the persisted data may be on a remote
|
|
866
888
|
* machine or a filesystem. Even for those storage types that are synchronous
|
|
@@ -884,18 +906,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
884
906
|
* ```
|
|
885
907
|
* @category Save
|
|
886
908
|
*/
|
|
887
|
-
save(): Promise<
|
|
909
|
+
save(): Promise<this>;
|
|
888
910
|
|
|
889
911
|
/**
|
|
890
912
|
* The save method takes data from the Store with which the Persister is
|
|
891
913
|
* associated and persists it into storage, once, and then continuously.
|
|
892
914
|
*
|
|
893
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
894
|
-
*
|
|
895
|
-
* ```ts override
|
|
896
|
-
* startAutoSave(): Promise<Persister>;
|
|
897
|
-
* ```
|
|
898
|
-
*
|
|
899
915
|
* This method first runs a single call to the save method to ensure the data
|
|
900
916
|
* is in sync with the persisted storage. It then continues to watch for
|
|
901
917
|
* changes to the Store, automatically saving the data to storage.
|
|
@@ -927,18 +943,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
927
943
|
* ```
|
|
928
944
|
* @category Save
|
|
929
945
|
*/
|
|
930
|
-
startAutoSave(): Promise<
|
|
946
|
+
startAutoSave(): Promise<this>;
|
|
931
947
|
|
|
932
948
|
/**
|
|
933
949
|
* The stopAutoSave method stops the automatic save of data to storage
|
|
934
950
|
* previously started with the startAutoSave method.
|
|
935
951
|
*
|
|
936
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
937
|
-
*
|
|
938
|
-
* ```ts override
|
|
939
|
-
* stopAutoSave(): Persister;
|
|
940
|
-
* ```
|
|
941
|
-
*
|
|
942
952
|
* If the Persister is not currently set to automatically save, this method
|
|
943
953
|
* has no effect.
|
|
944
954
|
* @returns A reference to the Persister object.
|
|
@@ -970,17 +980,38 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
970
980
|
* ```
|
|
971
981
|
* @category Save
|
|
972
982
|
*/
|
|
973
|
-
stopAutoSave():
|
|
983
|
+
stopAutoSave(): this;
|
|
974
984
|
|
|
975
985
|
/**
|
|
976
|
-
* The
|
|
977
|
-
*
|
|
986
|
+
* The isAutoSaving method lets you find out if the Persister is currently
|
|
987
|
+
* automatically saving its content.
|
|
988
|
+
* @returns A boolean indicating whether the Persister is currently
|
|
989
|
+
* autoSaving.
|
|
990
|
+
* @example
|
|
991
|
+
* This example creates a Persister and queries whether it is autoSaving.
|
|
978
992
|
*
|
|
979
|
-
*
|
|
993
|
+
* ```js
|
|
994
|
+
* const persister = createSessionPersister(createStore(), 'pets');
|
|
980
995
|
*
|
|
981
|
-
*
|
|
982
|
-
*
|
|
996
|
+
* console.log(persister.isAutoSaving());
|
|
997
|
+
* // -> false
|
|
998
|
+
*
|
|
999
|
+
* await persister.startAutoSave();
|
|
1000
|
+
* console.log(persister.isAutoSaving());
|
|
1001
|
+
* // -> true
|
|
1002
|
+
*
|
|
1003
|
+
* await persister.stopAutoSave();
|
|
1004
|
+
* console.log(persister.isAutoSaving());
|
|
1005
|
+
* // -> false
|
|
983
1006
|
* ```
|
|
1007
|
+
* @category Save
|
|
1008
|
+
* @since v5.0.0
|
|
1009
|
+
*/
|
|
1010
|
+
isAutoSaving(): boolean;
|
|
1011
|
+
|
|
1012
|
+
/**
|
|
1013
|
+
* The schedule method allows you to queue up a series of asynchronous actions
|
|
1014
|
+
* that must run in sequence during persistence.
|
|
984
1015
|
*
|
|
985
1016
|
* For example, a database Persister may need to ensure that multiple
|
|
986
1017
|
* asynchronous tasks to check and update the database schema are completed
|
|
@@ -1019,7 +1050,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1019
1050
|
* @category Lifecycle
|
|
1020
1051
|
* @since v4.0.0
|
|
1021
1052
|
*/
|
|
1022
|
-
schedule(...actions: Promise<any>[]): Promise<
|
|
1053
|
+
schedule(...actions: Promise<any>[]): Promise<this>;
|
|
1023
1054
|
|
|
1024
1055
|
/**
|
|
1025
1056
|
* The getStore method returns a reference to the underlying Store that is
|
|
@@ -1032,7 +1063,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1032
1063
|
* This has schema-based typing. The following is a simplified representation:
|
|
1033
1064
|
*
|
|
1034
1065
|
* ```ts override
|
|
1035
|
-
* getStore():
|
|
1066
|
+
* getStore(): SupportsMergeableStore extends true
|
|
1067
|
+
* ? Store | MergeableStore
|
|
1068
|
+
* : Store;
|
|
1036
1069
|
* ```
|
|
1037
1070
|
*
|
|
1038
1071
|
* ```js
|
|
@@ -1048,18 +1081,14 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1048
1081
|
* ```
|
|
1049
1082
|
* @category Getter
|
|
1050
1083
|
*/
|
|
1051
|
-
getStore():
|
|
1084
|
+
getStore(): SupportsMergeableStore extends true
|
|
1085
|
+
? Store<Schemas> | MergeableStore<Schemas>
|
|
1086
|
+
: Store<Schemas>;
|
|
1052
1087
|
|
|
1053
1088
|
/**
|
|
1054
1089
|
* The destroy method should be called when this Persister object is no longer
|
|
1055
1090
|
* used.
|
|
1056
1091
|
*
|
|
1057
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
1058
|
-
*
|
|
1059
|
-
* ```ts override
|
|
1060
|
-
* destroy(): Persister;
|
|
1061
|
-
* ```
|
|
1062
|
-
*
|
|
1063
1092
|
* This guarantees that all of the listeners that the object registered with
|
|
1064
1093
|
* the underlying Store and storage are removed and it can be correctly
|
|
1065
1094
|
* garbage collected. It is equivalent to running the stopAutoLoad method and
|
|
@@ -1084,7 +1113,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1084
1113
|
* ```
|
|
1085
1114
|
* @category Lifecycle
|
|
1086
1115
|
*/
|
|
1087
|
-
destroy():
|
|
1116
|
+
destroy(): this;
|
|
1088
1117
|
|
|
1089
1118
|
/**
|
|
1090
1119
|
* The getStats method provides a set of statistics about the Persister, and
|
|
@@ -1138,17 +1167,31 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1138
1167
|
* This has schema-based typing. The following is a simplified representation:
|
|
1139
1168
|
*
|
|
1140
1169
|
* ```ts override
|
|
1141
|
-
* createCustomPersister<
|
|
1142
|
-
*
|
|
1143
|
-
*
|
|
1170
|
+
* createCustomPersister<
|
|
1171
|
+
* ListeningHandle,
|
|
1172
|
+
* SupportsMergeableStore extends boolean = false,
|
|
1173
|
+
* >(
|
|
1174
|
+
* store: Store | (SupportsMergeableStore extends true ? MergeableStore : never),
|
|
1175
|
+
* getPersisted: () => Promise<
|
|
1176
|
+
* | Content
|
|
1177
|
+
* | (SupportsMergeableStore extends true ? MergeableContent : never)
|
|
1178
|
+
* | undefined
|
|
1179
|
+
* >,
|
|
1144
1180
|
* setPersisted: (
|
|
1145
|
-
* getContent: () =>
|
|
1146
|
-
*
|
|
1181
|
+
* getContent: () =>
|
|
1182
|
+
* | Content
|
|
1183
|
+
* | (SupportsMergeableStore extends true ? MergeableContent : never),
|
|
1184
|
+
* getChanges?: () =>
|
|
1185
|
+
* | Changes
|
|
1186
|
+
* | (SupportsMergeableStore extends true ? MergeableChanges : never),
|
|
1147
1187
|
* ) => Promise<void>,
|
|
1148
|
-
* addPersisterListener: (
|
|
1188
|
+
* addPersisterListener: (
|
|
1189
|
+
* listener: PersisterListener<SupportsMergeableStore>,
|
|
1190
|
+
* ) => ListeningHandle,
|
|
1149
1191
|
* delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1150
1192
|
* onIgnoredError?: (error: any) => void,
|
|
1151
|
-
*
|
|
1193
|
+
* supportsMergeableStore?: SupportsMergeableStore,
|
|
1194
|
+
* ): Persister<SupportsMergeableStore>;
|
|
1152
1195
|
* ```
|
|
1153
1196
|
*
|
|
1154
1197
|
* As well as providing a reference to the Store to persist, you must provide
|
|
@@ -1184,6 +1227,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1184
1227
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
1185
1228
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
1186
1229
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
1230
|
+
* @param supportsMergeableStore An optional boolean to indicate that this
|
|
1231
|
+
* Persister will be able to handle MergeableStore persistence as well as
|
|
1232
|
+
* regular Store persistence, since v5.0.
|
|
1187
1233
|
* @returns A reference to the new Persister object.
|
|
1188
1234
|
* @example
|
|
1189
1235
|
* This example creates a custom Persister object and persists the Store to a
|
|
@@ -1225,18 +1271,32 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1225
1271
|
export function createCustomPersister<
|
|
1226
1272
|
Schemas extends OptionalSchemas,
|
|
1227
1273
|
ListeningHandle,
|
|
1274
|
+
SupportsMergeableStore extends boolean,
|
|
1228
1275
|
>(
|
|
1229
|
-
store:
|
|
1276
|
+
store:
|
|
1277
|
+
| Store<Schemas>
|
|
1278
|
+
| (SupportsMergeableStore extends true ? MergeableStore<Schemas> : never),
|
|
1230
1279
|
getPersisted: () => Promise<
|
|
1231
|
-
|
|
1280
|
+
| Content<Schemas>
|
|
1281
|
+
| (SupportsMergeableStore extends true ? MergeableContent<Schemas> : never)
|
|
1282
|
+
| undefined
|
|
1232
1283
|
>,
|
|
1233
1284
|
setPersisted: (
|
|
1234
|
-
getContent: () =>
|
|
1235
|
-
|
|
1285
|
+
getContent: () =>
|
|
1286
|
+
| Content<Schemas>
|
|
1287
|
+
| (SupportsMergeableStore extends true
|
|
1288
|
+
? MergeableContent<Schemas>
|
|
1289
|
+
: never),
|
|
1290
|
+
getChanges?: () =>
|
|
1291
|
+
| Changes<Schemas>
|
|
1292
|
+
| (SupportsMergeableStore extends true
|
|
1293
|
+
? MergeableChanges<Schemas>
|
|
1294
|
+
: never),
|
|
1236
1295
|
) => Promise<void>,
|
|
1237
1296
|
addPersisterListener: (
|
|
1238
1297
|
listener: PersisterListener<Schemas>,
|
|
1239
1298
|
) => ListeningHandle,
|
|
1240
1299
|
delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1241
1300
|
onIgnoredError?: (error: any) => void,
|
|
1242
|
-
|
|
1301
|
+
supportsMergeableStore?: SupportsMergeableStore,
|
|
1302
|
+
): Persister<Schemas, SupportsMergeableStore>;
|
|
@@ -19,11 +19,11 @@ import {
|
|
|
19
19
|
OptionalSchemas,
|
|
20
20
|
OptionalTablesSchema,
|
|
21
21
|
Store,
|
|
22
|
-
} from './store.d';
|
|
22
|
+
} from './store.d.ts';
|
|
23
23
|
import {CellIdFromSchema, TableIdFromSchema} from './internal/store';
|
|
24
24
|
import {GetResultCell, JoinedCellIdOrId} from './internal/queries';
|
|
25
|
-
import {Id, IdOrNull, Ids} from './common.d';
|
|
26
|
-
import {GetIdChanges} from '../store.d';
|
|
25
|
+
import {Id, IdOrNull, Ids} from './common.d.ts';
|
|
26
|
+
import {GetIdChanges} from '../store.d.ts';
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* The ResultTable type is the data structure representing the results of a
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
OptionalTablesSchema,
|
|
18
18
|
RowCallback,
|
|
19
19
|
Store,
|
|
20
|
-
} from './store.d';
|
|
21
|
-
import {Id, IdOrNull, Ids} from './common.d';
|
|
20
|
+
} from './store.d.ts';
|
|
21
|
+
import {Id, IdOrNull, Ids} from './common.d.ts';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* The Relationship type represents the concept of a map that connects one Row
|