tinybase 5.0.0-beta.1 → 5.0.0-beta.11
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 +167 -131
- package/lib/debug/persisters/persister-browser.js +155 -102
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +225 -152
- package/lib/debug/persisters/persister-electric-sql.js +225 -152
- package/lib/debug/persisters/persister-expo-sqlite-next.js +225 -152
- package/lib/debug/persisters/persister-expo-sqlite.js +225 -152
- package/lib/debug/persisters/persister-file.js +149 -101
- package/lib/debug/persisters/persister-indexed-db.js +146 -100
- package/lib/debug/persisters/persister-libsql.js +924 -0
- package/lib/debug/persisters/persister-partykit-client.js +146 -104
- package/lib/debug/persisters/persister-partykit-server.js +17 -25
- package/lib/debug/persisters/persister-powersync.js +939 -0
- package/lib/debug/persisters/persister-remote.js +141 -97
- package/lib/debug/persisters/persister-sqlite-wasm.js +225 -152
- package/lib/debug/persisters/persister-sqlite3.js +225 -152
- package/lib/debug/persisters/persister-yjs.js +164 -127
- package/lib/debug/persisters.js +137 -94
- 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 +571 -0
- package/lib/debug/synchronizers/synchronizer-ws-client.js +598 -0
- package/lib/debug/synchronizers/synchronizer-ws-server.js +241 -0
- package/lib/debug/synchronizers.js +531 -0
- package/lib/debug/tinybase.js +1080 -215
- package/lib/debug/tools.js +22 -21
- package/lib/debug/ui-react-dom.js +336 -258
- 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 +162 -59
- 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 +57 -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 +193 -121
- 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 +57 -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,15 +41,97 @@
|
|
|
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
|
|
|
57
|
+
/**
|
|
58
|
+
* The StoreTypes type
|
|
59
|
+
*/
|
|
60
|
+
export type StoreTypes =
|
|
61
|
+
| 1 // Store only
|
|
62
|
+
| 2 // MergeableStore only
|
|
63
|
+
| 3; // Store and MergeableStore
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The PersistedStore type
|
|
67
|
+
*/
|
|
68
|
+
export type PersistedStore<
|
|
69
|
+
Schemas extends OptionalSchemas,
|
|
70
|
+
StoreType extends StoreTypes = 1,
|
|
71
|
+
> = StoreType extends 3
|
|
72
|
+
? Store<Schemas> | MergeableStore<Schemas>
|
|
73
|
+
: StoreType extends 2
|
|
74
|
+
? MergeableStore<Schemas>
|
|
75
|
+
: Store<Schemas>;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The PersistedContent type
|
|
79
|
+
*/
|
|
80
|
+
export type PersistedContent<
|
|
81
|
+
Schemas extends OptionalSchemas,
|
|
82
|
+
StoreType extends StoreTypes = 1,
|
|
83
|
+
> = StoreType extends 3
|
|
84
|
+
? Content<Schemas> | MergeableContent<Schemas>
|
|
85
|
+
: StoreType extends 2
|
|
86
|
+
? MergeableContent<Schemas>
|
|
87
|
+
: Content<Schemas>;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* The PersistedChanges type
|
|
91
|
+
*/
|
|
92
|
+
export type PersistedChanges<
|
|
93
|
+
Schemas extends OptionalSchemas,
|
|
94
|
+
StoreType extends StoreTypes = 1,
|
|
95
|
+
> = StoreType extends 3
|
|
96
|
+
? Changes<Schemas> | MergeableChanges<Schemas>
|
|
97
|
+
: StoreType extends 2
|
|
98
|
+
? MergeableChanges<Schemas>
|
|
99
|
+
: Changes<Schemas>;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* A PersisterListener is a callback that lets a Persister inform the Store that
|
|
103
|
+
* a change has happened to the underlying data.
|
|
104
|
+
*
|
|
105
|
+
* This has schema-based typing. The following is a simplified representation:
|
|
106
|
+
*
|
|
107
|
+
* ```ts override
|
|
108
|
+
* export type PersisterListener<StoreType extends StoreTypes = 1> = (
|
|
109
|
+
* content?: PersistedContent<StoreType>,
|
|
110
|
+
* changes?: PersistedChanges<StoreType>,
|
|
111
|
+
* ) => void;
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* If the listener is called with the `changes` parameter, it will be used to
|
|
115
|
+
* make an incremental change to the Store. If not, but the `content` parameter
|
|
116
|
+
* is available, that will be used to make a wholesale change to the Store. If
|
|
117
|
+
* neither are present, the content will be loaded using the Persister's load
|
|
118
|
+
* method. Prior to v5.0, these parameters were callbacks.
|
|
119
|
+
* @param content If provided, this is a Content object from the the Persister
|
|
120
|
+
* that will be used to immediately wholesale update the Store.
|
|
121
|
+
* @param changes If provided, this is a Changes object from the the Persister
|
|
122
|
+
* that will be used to immediately incrementally update the Store. This takes
|
|
123
|
+
* priority over the content argument above if present.
|
|
124
|
+
* @category Creation
|
|
125
|
+
* @since v4.0.0
|
|
126
|
+
*/
|
|
127
|
+
export type PersisterListener<
|
|
128
|
+
Schemas extends OptionalSchemas,
|
|
129
|
+
StoreType extends StoreTypes = 1,
|
|
130
|
+
> = (
|
|
131
|
+
content?: PersistedContent<Schemas, StoreType>,
|
|
132
|
+
changes?: PersistedChanges<Schemas, StoreType>,
|
|
133
|
+
) => void;
|
|
134
|
+
|
|
51
135
|
/**
|
|
52
136
|
* The PersisterStats type describes the number of times a Persister object has
|
|
53
137
|
* loaded or saved data.
|
|
@@ -67,37 +151,6 @@ export type PersisterStats = {
|
|
|
67
151
|
saves?: number;
|
|
68
152
|
};
|
|
69
153
|
|
|
70
|
-
/**
|
|
71
|
-
* A PersisterListener is a callback that lets a Persister inform the Store that
|
|
72
|
-
* a change has happened to the underlying data.
|
|
73
|
-
*
|
|
74
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
75
|
-
*
|
|
76
|
-
* ```ts override
|
|
77
|
-
* (
|
|
78
|
-
* getContent?: () => [Tables, Values],
|
|
79
|
-
* getTransactionChanges?: GetTransactionChanges,
|
|
80
|
-
* ) => void;
|
|
81
|
-
* ```
|
|
82
|
-
*
|
|
83
|
-
* If the listener has the `getTransactionChanges` parameter, it will be used to
|
|
84
|
-
* make an incremental change to the Store. If not, but the `getContent`
|
|
85
|
-
* function _is_ available, that will be used to make a wholesale change to the
|
|
86
|
-
* Store. If neither are present, the content will be loaded from the
|
|
87
|
-
* Persister's load method.
|
|
88
|
-
* @param getContent An optional function that, if provided, returns an array of
|
|
89
|
-
* Store content and can be used to immediately wholesale update the Store.
|
|
90
|
-
* @param getTransactionChanges An optional function that, if provided, returns
|
|
91
|
-
* a TransactionChanges object and can be used to immediately incrementally
|
|
92
|
-
* update the Store.
|
|
93
|
-
* @category Creation
|
|
94
|
-
* @since v4.0.0
|
|
95
|
-
*/
|
|
96
|
-
export type PersisterListener<Schemas extends OptionalSchemas> = (
|
|
97
|
-
getContent?: () => [Tables<Schemas[0], true>, Values<Schemas[1], true>],
|
|
98
|
-
getTransactionChanges?: GetTransactionChanges<Schemas>,
|
|
99
|
-
) => void;
|
|
100
|
-
|
|
101
154
|
/**
|
|
102
155
|
* The DatabasePersisterConfig type describes the configuration of a
|
|
103
156
|
* database-oriented Persister, such as those for SQLite.
|
|
@@ -572,9 +625,9 @@ export type DpcTabularValues = {
|
|
|
572
625
|
*
|
|
573
626
|
* Creating a Persister depends on the choice of underlying storage where the
|
|
574
627
|
* 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.
|
|
628
|
+
* the createLocalPersister function, the createRemotePersister function, and
|
|
629
|
+
* the createFilePersister function. The createCustomPersister function can also
|
|
630
|
+
* be used to easily create a fully customized way to save and load Store data.
|
|
578
631
|
*
|
|
579
632
|
* A Persister lets you explicit save or load data, with the save method and the
|
|
580
633
|
* load method respectively. These methods are both asynchronous (since the
|
|
@@ -643,7 +696,7 @@ export type DpcTabularValues = {
|
|
|
643
696
|
* const store = createStore();
|
|
644
697
|
* const persister = createSessionPersister(store, 'pets');
|
|
645
698
|
*
|
|
646
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
699
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
647
700
|
* await persister.startAutoSave();
|
|
648
701
|
*
|
|
649
702
|
* store.setTables({pets: {felix: {species: 'cat'}}});
|
|
@@ -664,7 +717,10 @@ export type DpcTabularValues = {
|
|
|
664
717
|
* ```
|
|
665
718
|
* @category Persister
|
|
666
719
|
*/
|
|
667
|
-
export interface Persister<
|
|
720
|
+
export interface Persister<
|
|
721
|
+
in out Schemas extends OptionalSchemas,
|
|
722
|
+
StoreType extends StoreTypes = 1,
|
|
723
|
+
> {
|
|
668
724
|
/**
|
|
669
725
|
* The load method gets persisted data from storage, and loads it into the
|
|
670
726
|
* Store with which the Persister is associated, once.
|
|
@@ -672,10 +728,10 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
672
728
|
* This has schema-based typing. The following is a simplified representation:
|
|
673
729
|
*
|
|
674
730
|
* ```ts override
|
|
675
|
-
* load(
|
|
731
|
+
* load(initialContent?: Content): Promise<this>;
|
|
676
732
|
* ```
|
|
677
733
|
*
|
|
678
|
-
* The optional
|
|
734
|
+
* The optional parameter allows you to specify what the initial content for
|
|
679
735
|
* the Store will be if there is nothing currently persisted or if the load
|
|
680
736
|
* fails (for example when the Persister is remote and the environment is
|
|
681
737
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -685,10 +741,8 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
685
741
|
* machine or a filesystem. Even for those storage types that are synchronous
|
|
686
742
|
* (like browser storage) it is still recommended that you `await` calls to
|
|
687
743
|
* this method or handle the return type natively as a Promise.
|
|
688
|
-
* @param
|
|
744
|
+
* @param initialContent An optional Content object used when the underlying
|
|
689
745
|
* 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
746
|
* @returns A Promise containing a reference to the Persister object.
|
|
693
747
|
* @example
|
|
694
748
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -717,7 +771,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
717
771
|
* const store = createStore();
|
|
718
772
|
* const persister = createSessionPersister(store, 'pets');
|
|
719
773
|
*
|
|
720
|
-
* await persister.load({pets: {fido: {species: 'dog'}}});
|
|
774
|
+
* await persister.load([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
721
775
|
* console.log(store.getTables());
|
|
722
776
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
723
777
|
*
|
|
@@ -730,10 +784,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
730
784
|
* ```
|
|
731
785
|
* @category Load
|
|
732
786
|
*/
|
|
733
|
-
load(
|
|
734
|
-
initialTables?: Tables<Schemas[0], true>,
|
|
735
|
-
initialValues?: Values<Schemas[1], true>,
|
|
736
|
-
): Promise<Persister<Schemas>>;
|
|
787
|
+
load(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
737
788
|
|
|
738
789
|
/**
|
|
739
790
|
* The startAutoLoad method gets persisted data from storage, and loads it
|
|
@@ -743,13 +794,10 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
743
794
|
* This has schema-based typing. The following is a simplified representation:
|
|
744
795
|
*
|
|
745
796
|
* ```ts override
|
|
746
|
-
* startAutoLoad(
|
|
747
|
-
* initialTables?: Tables,
|
|
748
|
-
* initialValues?: Values,
|
|
749
|
-
* ): Promise<Persister>;
|
|
797
|
+
* startAutoLoad(initialContent?: Content): Promise<this>;
|
|
750
798
|
* ```
|
|
751
799
|
*
|
|
752
|
-
* The optional
|
|
800
|
+
* The optional parameter allows you to specify what the initial content for
|
|
753
801
|
* the Store will be if there is nothing currently persisted or if the load
|
|
754
802
|
* fails (for example when the Persister is remote and the environment is
|
|
755
803
|
* offline). This allows you to fallback or instantiate a Store whether it's
|
|
@@ -764,10 +812,8 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
764
812
|
* the asynchronous load method. Even for those storage types that are
|
|
765
813
|
* synchronous (like browser storage) it is still recommended that you `await`
|
|
766
814
|
* calls to this method or handle the return type natively as a Promise.
|
|
767
|
-
* @param
|
|
815
|
+
* @param initialContent An optional Content object used when the underlying
|
|
768
816
|
* 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
817
|
* @returns A Promise containing a reference to the Persister object.
|
|
772
818
|
* @example
|
|
773
819
|
* This example creates an empty Store, and loads data into it from the
|
|
@@ -780,7 +826,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
780
826
|
* const store = createStore();
|
|
781
827
|
* const persister = createSessionPersister(store, 'pets');
|
|
782
828
|
*
|
|
783
|
-
* await persister.startAutoLoad({pets: {fido: {species: 'dog'}}});
|
|
829
|
+
* await persister.startAutoLoad([{pets: {fido: {species: 'dog'}}}, {}]);
|
|
784
830
|
* console.log(store.getTables());
|
|
785
831
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
786
832
|
*
|
|
@@ -797,21 +843,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
797
843
|
* ```
|
|
798
844
|
* @category Load
|
|
799
845
|
*/
|
|
800
|
-
startAutoLoad(
|
|
801
|
-
initialTables?: Tables<Schemas[0], true>,
|
|
802
|
-
initialValues?: Values<Schemas[1], true>,
|
|
803
|
-
): Promise<Persister<Schemas>>;
|
|
846
|
+
startAutoLoad(initialContent?: Content<Schemas, true>): Promise<this>;
|
|
804
847
|
|
|
805
848
|
/**
|
|
806
849
|
* The stopAutoLoad method stops the automatic loading of data from storage
|
|
807
850
|
* previously started with the startAutoLoad method.
|
|
808
851
|
*
|
|
809
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
810
|
-
*
|
|
811
|
-
* ```ts override
|
|
812
|
-
* stopAutoLoad(): Persister;
|
|
813
|
-
* ```
|
|
814
|
-
*
|
|
815
852
|
* If the Persister is not currently set to automatically load, this method
|
|
816
853
|
* has no effect.
|
|
817
854
|
* @returns A reference to the Persister object.
|
|
@@ -850,17 +887,38 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
850
887
|
* ```
|
|
851
888
|
* @category Load
|
|
852
889
|
*/
|
|
853
|
-
stopAutoLoad():
|
|
890
|
+
stopAutoLoad(): this;
|
|
854
891
|
|
|
855
892
|
/**
|
|
856
|
-
* The
|
|
857
|
-
*
|
|
893
|
+
* The isAutoLoading method lets you find out if the Persister is currently
|
|
894
|
+
* automatically loading its content.
|
|
895
|
+
* @returns A boolean indicating whether the Persister is currently
|
|
896
|
+
* autoLoading.
|
|
897
|
+
* @example
|
|
898
|
+
* This example creates a Persister and queries whether it is autoLoading.
|
|
858
899
|
*
|
|
859
|
-
*
|
|
900
|
+
* ```js
|
|
901
|
+
* const persister = createSessionPersister(createStore(), 'pets');
|
|
860
902
|
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
903
|
+
* console.log(persister.isAutoLoading());
|
|
904
|
+
* // -> false
|
|
905
|
+
*
|
|
906
|
+
* await persister.startAutoLoad();
|
|
907
|
+
* console.log(persister.isAutoLoading());
|
|
908
|
+
* // -> true
|
|
909
|
+
*
|
|
910
|
+
* await persister.stopAutoLoad();
|
|
911
|
+
* console.log(persister.isAutoLoading());
|
|
912
|
+
* // -> false
|
|
863
913
|
* ```
|
|
914
|
+
* @category Load
|
|
915
|
+
* @since v5.0.0
|
|
916
|
+
*/
|
|
917
|
+
isAutoLoading(): boolean;
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* The save method takes data from the Store with which the Persister is
|
|
921
|
+
* associated and persists it into storage, once.
|
|
864
922
|
*
|
|
865
923
|
* This method is asynchronous because the persisted data may be on a remote
|
|
866
924
|
* machine or a filesystem. Even for those storage types that are synchronous
|
|
@@ -884,18 +942,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
884
942
|
* ```
|
|
885
943
|
* @category Save
|
|
886
944
|
*/
|
|
887
|
-
save(): Promise<
|
|
945
|
+
save(): Promise<this>;
|
|
888
946
|
|
|
889
947
|
/**
|
|
890
948
|
* The save method takes data from the Store with which the Persister is
|
|
891
949
|
* associated and persists it into storage, once, and then continuously.
|
|
892
950
|
*
|
|
893
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
894
|
-
*
|
|
895
|
-
* ```ts override
|
|
896
|
-
* startAutoSave(): Promise<Persister>;
|
|
897
|
-
* ```
|
|
898
|
-
*
|
|
899
951
|
* This method first runs a single call to the save method to ensure the data
|
|
900
952
|
* is in sync with the persisted storage. It then continues to watch for
|
|
901
953
|
* changes to the Store, automatically saving the data to storage.
|
|
@@ -927,18 +979,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
927
979
|
* ```
|
|
928
980
|
* @category Save
|
|
929
981
|
*/
|
|
930
|
-
startAutoSave(): Promise<
|
|
982
|
+
startAutoSave(): Promise<this>;
|
|
931
983
|
|
|
932
984
|
/**
|
|
933
985
|
* The stopAutoSave method stops the automatic save of data to storage
|
|
934
986
|
* previously started with the startAutoSave method.
|
|
935
987
|
*
|
|
936
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
937
|
-
*
|
|
938
|
-
* ```ts override
|
|
939
|
-
* stopAutoSave(): Persister;
|
|
940
|
-
* ```
|
|
941
|
-
*
|
|
942
988
|
* If the Persister is not currently set to automatically save, this method
|
|
943
989
|
* has no effect.
|
|
944
990
|
* @returns A reference to the Persister object.
|
|
@@ -970,17 +1016,38 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
970
1016
|
* ```
|
|
971
1017
|
* @category Save
|
|
972
1018
|
*/
|
|
973
|
-
stopAutoSave():
|
|
1019
|
+
stopAutoSave(): this;
|
|
974
1020
|
|
|
975
1021
|
/**
|
|
976
|
-
* The
|
|
977
|
-
*
|
|
1022
|
+
* The isAutoSaving method lets you find out if the Persister is currently
|
|
1023
|
+
* automatically saving its content.
|
|
1024
|
+
* @returns A boolean indicating whether the Persister is currently
|
|
1025
|
+
* autoSaving.
|
|
1026
|
+
* @example
|
|
1027
|
+
* This example creates a Persister and queries whether it is autoSaving.
|
|
978
1028
|
*
|
|
979
|
-
*
|
|
1029
|
+
* ```js
|
|
1030
|
+
* const persister = createSessionPersister(createStore(), 'pets');
|
|
980
1031
|
*
|
|
981
|
-
*
|
|
982
|
-
*
|
|
1032
|
+
* console.log(persister.isAutoSaving());
|
|
1033
|
+
* // -> false
|
|
1034
|
+
*
|
|
1035
|
+
* await persister.startAutoSave();
|
|
1036
|
+
* console.log(persister.isAutoSaving());
|
|
1037
|
+
* // -> true
|
|
1038
|
+
*
|
|
1039
|
+
* await persister.stopAutoSave();
|
|
1040
|
+
* console.log(persister.isAutoSaving());
|
|
1041
|
+
* // -> false
|
|
983
1042
|
* ```
|
|
1043
|
+
* @category Save
|
|
1044
|
+
* @since v5.0.0
|
|
1045
|
+
*/
|
|
1046
|
+
isAutoSaving(): boolean;
|
|
1047
|
+
|
|
1048
|
+
/**
|
|
1049
|
+
* The schedule method allows you to queue up a series of asynchronous actions
|
|
1050
|
+
* that must run in sequence during persistence.
|
|
984
1051
|
*
|
|
985
1052
|
* For example, a database Persister may need to ensure that multiple
|
|
986
1053
|
* asynchronous tasks to check and update the database schema are completed
|
|
@@ -1019,7 +1086,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1019
1086
|
* @category Lifecycle
|
|
1020
1087
|
* @since v4.0.0
|
|
1021
1088
|
*/
|
|
1022
|
-
schedule(...actions: Promise<any>[]): Promise<
|
|
1089
|
+
schedule(...actions: Promise<any>[]): Promise<this>;
|
|
1023
1090
|
|
|
1024
1091
|
/**
|
|
1025
1092
|
* The getStore method returns a reference to the underlying Store that is
|
|
@@ -1032,7 +1099,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1032
1099
|
* This has schema-based typing. The following is a simplified representation:
|
|
1033
1100
|
*
|
|
1034
1101
|
* ```ts override
|
|
1035
|
-
* getStore():
|
|
1102
|
+
* getStore(): PersistedStore<StoreType>;
|
|
1036
1103
|
* ```
|
|
1037
1104
|
*
|
|
1038
1105
|
* ```js
|
|
@@ -1048,18 +1115,12 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1048
1115
|
* ```
|
|
1049
1116
|
* @category Getter
|
|
1050
1117
|
*/
|
|
1051
|
-
getStore():
|
|
1118
|
+
getStore(): PersistedStore<Schemas, StoreType>;
|
|
1052
1119
|
|
|
1053
1120
|
/**
|
|
1054
1121
|
* The destroy method should be called when this Persister object is no longer
|
|
1055
1122
|
* used.
|
|
1056
1123
|
*
|
|
1057
|
-
* This has schema-based typing. The following is a simplified representation:
|
|
1058
|
-
*
|
|
1059
|
-
* ```ts override
|
|
1060
|
-
* destroy(): Persister;
|
|
1061
|
-
* ```
|
|
1062
|
-
*
|
|
1063
1124
|
* This guarantees that all of the listeners that the object registered with
|
|
1064
1125
|
* the underlying Store and storage are removed and it can be correctly
|
|
1065
1126
|
* garbage collected. It is equivalent to running the stopAutoLoad method and
|
|
@@ -1084,7 +1145,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1084
1145
|
* ```
|
|
1085
1146
|
* @category Lifecycle
|
|
1086
1147
|
*/
|
|
1087
|
-
destroy():
|
|
1148
|
+
destroy(): this;
|
|
1088
1149
|
|
|
1089
1150
|
/**
|
|
1090
1151
|
* The getStats method provides a set of statistics about the Persister, and
|
|
@@ -1138,17 +1199,23 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1138
1199
|
* This has schema-based typing. The following is a simplified representation:
|
|
1139
1200
|
*
|
|
1140
1201
|
* ```ts override
|
|
1141
|
-
* createCustomPersister<
|
|
1142
|
-
*
|
|
1143
|
-
*
|
|
1202
|
+
* createCustomPersister<
|
|
1203
|
+
* ListeningHandle,
|
|
1204
|
+
* StoreType extends StoreTypes = 1,
|
|
1205
|
+
* >(
|
|
1206
|
+
* store: PersistedStore<StoreType>,
|
|
1207
|
+
* getPersisted: () => Promise<PersistedContent<StoreType> | undefined>,
|
|
1144
1208
|
* setPersisted: (
|
|
1145
|
-
* getContent: () =>
|
|
1146
|
-
*
|
|
1209
|
+
* getContent: () => PersistedContent<StoreType>,
|
|
1210
|
+
* changes?: PersistedChanges<StoreType>,
|
|
1147
1211
|
* ) => Promise<void>,
|
|
1148
|
-
* addPersisterListener: (
|
|
1212
|
+
* addPersisterListener: (
|
|
1213
|
+
* listener: PersisterListener<StoreType>,
|
|
1214
|
+
* ) => ListeningHandle,
|
|
1149
1215
|
* delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1150
1216
|
* onIgnoredError?: (error: any) => void,
|
|
1151
|
-
*
|
|
1217
|
+
* supportedStoreType?: StoreType,
|
|
1218
|
+
* ): Persister<StoreType>;
|
|
1152
1219
|
* ```
|
|
1153
1220
|
*
|
|
1154
1221
|
* As well as providing a reference to the Store to persist, you must provide
|
|
@@ -1173,7 +1240,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1173
1240
|
* the persistence layer (or `undefined` if not present).
|
|
1174
1241
|
* @param setPersisted An asynchronous function which will send content to the
|
|
1175
1242
|
* persistence layer. Since v4.0, it receives functions for getting the Store
|
|
1176
|
-
* content and information about the changes made during a transaction.
|
|
1243
|
+
* content and information about the changes made during a transaction. Since
|
|
1244
|
+
* v5.0, the changes are received directly by reference, rather than an
|
|
1245
|
+
* accessor.
|
|
1177
1246
|
* @param addPersisterListener A function that will register a `listener`
|
|
1178
1247
|
* listener on underlying changes to the persistence layer. You can return a
|
|
1179
1248
|
* listening handle that will be provided again when `delPersisterListener` is
|
|
@@ -1184,6 +1253,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1184
1253
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
1185
1254
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
1186
1255
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
1256
|
+
* @param supportsMergeableStore An optional boolean to indicate that this
|
|
1257
|
+
* Persister will be able to handle MergeableStore persistence as well as
|
|
1258
|
+
* regular Store persistence, since v5.0.
|
|
1187
1259
|
* @returns A reference to the new Persister object.
|
|
1188
1260
|
* @example
|
|
1189
1261
|
* This example creates a custom Persister object and persists the Store to a
|
|
@@ -1225,18 +1297,18 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1225
1297
|
export function createCustomPersister<
|
|
1226
1298
|
Schemas extends OptionalSchemas,
|
|
1227
1299
|
ListeningHandle,
|
|
1300
|
+
StoreType extends StoreTypes = 1,
|
|
1228
1301
|
>(
|
|
1229
|
-
store:
|
|
1230
|
-
getPersisted: () => Promise<
|
|
1231
|
-
[Tables<Schemas[0]>, Values<Schemas[1]>] | undefined
|
|
1232
|
-
>,
|
|
1302
|
+
store: PersistedStore<Schemas, StoreType>,
|
|
1303
|
+
getPersisted: () => Promise<PersistedContent<Schemas, StoreType> | undefined>,
|
|
1233
1304
|
setPersisted: (
|
|
1234
|
-
getContent: () =>
|
|
1235
|
-
|
|
1305
|
+
getContent: () => PersistedContent<Schemas, StoreType>,
|
|
1306
|
+
changes?: PersistedChanges<Schemas, StoreType>,
|
|
1236
1307
|
) => Promise<void>,
|
|
1237
1308
|
addPersisterListener: (
|
|
1238
|
-
listener: PersisterListener<Schemas>,
|
|
1309
|
+
listener: PersisterListener<Schemas, StoreType>,
|
|
1239
1310
|
) => ListeningHandle,
|
|
1240
1311
|
delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1241
1312
|
onIgnoredError?: (error: any) => void,
|
|
1242
|
-
|
|
1313
|
+
supportedStoreType?: StoreType,
|
|
1314
|
+
): Persister<Schemas, StoreType>;
|
|
@@ -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
|