tinybase 5.0.0-beta.5 → 5.0.0-beta.7
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/cjs/mergeable-store.cjs +1 -1
- package/lib/cjs/mergeable-store.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 -1
- 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-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/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.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -1
- package/lib/cjs-es6/mergeable-store.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 -1
- 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-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/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.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +287 -130
- package/lib/debug/persisters/persister-automerge.js +39 -46
- package/lib/debug/persisters/persister-browser.js +39 -46
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +64 -60
- package/lib/debug/persisters/persister-electric-sql.js +64 -60
- package/lib/debug/persisters/persister-expo-sqlite-next.js +64 -60
- package/lib/debug/persisters/persister-expo-sqlite.js +64 -60
- package/lib/debug/persisters/persister-file.js +39 -46
- package/lib/debug/persisters/persister-indexed-db.js +39 -46
- package/lib/debug/persisters/persister-libsql.js +64 -60
- package/lib/debug/persisters/persister-partykit-client.js +39 -46
- package/lib/debug/persisters/persister-powersync.js +917 -0
- package/lib/debug/persisters/persister-remote.js +39 -46
- package/lib/debug/persisters/persister-sqlite-wasm.js +64 -60
- package/lib/debug/persisters/persister-sqlite3.js +64 -60
- package/lib/debug/persisters/persister-yjs.js +41 -48
- package/lib/debug/persisters.js +38 -45
- package/lib/debug/store.js +44 -32
- package/lib/debug/synchronizers/synchronizer-local.js +502 -0
- package/lib/debug/synchronizers/synchronizer-ws-client.js +525 -0
- package/lib/debug/synchronizers/synchronizer-ws-server.js +57 -0
- package/lib/debug/synchronizers.js +466 -0
- package/lib/debug/tinybase.js +569 -250
- package/lib/debug/tools.js +2 -2
- package/lib/debug/ui-react-dom.js +81 -76
- package/lib/debug/ui-react.js +1 -1
- package/lib/es6/mergeable-store.js +1 -1
- package/lib/es6/mergeable-store.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 -1
- 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-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/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.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/mergeable-store.js +1 -1
- package/lib/mergeable-store.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 -1
- 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-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/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 +121 -59
- package/lib/types/metrics.d.ts +2 -2
- package/lib/types/persisters/persister-automerge.d.ts +3 -0
- package/lib/types/persisters/persister-browser.d.ts +9 -2
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +3 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +3 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +3 -0
- package/lib/types/persisters/persister-file.d.ts +5 -1
- package/lib/types/persisters/persister-indexed-db.d.ts +3 -0
- package/lib/types/persisters/persister-libsql.d.ts +3 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +3 -0
- package/lib/types/persisters/persister-powersync.d.ts +157 -0
- package/lib/types/persisters/persister-remote.d.ts +3 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +3 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +3 -0
- package/lib/types/persisters/persister-yjs.d.ts +5 -2
- package/lib/types/persisters.d.ts +68 -19
- package/lib/types/queries.d.ts +2 -2
- package/lib/types/relationships.d.ts +2 -2
- package/lib/types/store.d.ts +36 -3
- package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
- package/lib/types/synchronizers/synchronizer-ws-client.d.ts +30 -0
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -0
- package/lib/types/synchronizers.d.ts +131 -0
- package/lib/types/tinybase.d.ts +10 -9
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/ui-react.d.ts +8 -8
- 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/mergeable-store.d.ts +185 -87
- package/lib/types/with-schemas/metrics.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +13 -6
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-file.d.ts +7 -3
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-libsql.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +4 -1
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +6 -3
- package/lib/types/with-schemas/persisters.d.ts +90 -62
- 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 +100 -3
- package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +32 -0
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -0
- package/lib/types/with-schemas/synchronizers.d.ts +146 -0
- package/lib/types/with-schemas/tinybase.d.ts +9 -9
- package/lib/types/with-schemas/tools.d.ts +2 -2
- package/lib/types/with-schemas/ui-react.d.ts +8 -8
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -1
- package/lib/umd/mergeable-store.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 -1
- 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-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/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.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -1
- package/lib/umd-es6/mergeable-store.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 -1
- 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-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/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.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +37 -26
- package/readme.md +2 -2
|
@@ -41,8 +41,6 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
41
41
|
const object = Object;
|
|
42
42
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
43
43
|
const objEntries = object.entries;
|
|
44
|
-
const objIds = object.keys;
|
|
45
|
-
const objFreeze = object.freeze;
|
|
46
44
|
const isObject = (obj) =>
|
|
47
45
|
!isUndefined(obj) &&
|
|
48
46
|
ifNotUndefined(
|
|
@@ -53,6 +51,8 @@ const isObject = (obj) =>
|
|
|
53
51
|
/* istanbul ignore next */
|
|
54
52
|
() => true,
|
|
55
53
|
);
|
|
54
|
+
const objIds = object.keys;
|
|
55
|
+
const objFreeze = object.freeze;
|
|
56
56
|
const objNew = (entries = []) => object.fromEntries(entries);
|
|
57
57
|
const objMerge = (...objs) => object.assign({}, ...objs);
|
|
58
58
|
const objHas = (obj, id) => id in obj;
|
|
@@ -97,6 +97,9 @@ const setNew = (entryOrEntries) =>
|
|
|
97
97
|
);
|
|
98
98
|
const setAdd = (set, value) => set?.add(value);
|
|
99
99
|
|
|
100
|
+
const TABLE = 'TABLE';
|
|
101
|
+
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
102
|
+
const DELETE_FROM = 'DELETE FROM';
|
|
100
103
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
101
104
|
const FROM_PRAGMA_TABLE = 'FROM pragma_table_';
|
|
102
105
|
const WHERE = 'WHERE';
|
|
@@ -191,15 +194,20 @@ const getCommandFunctions = (
|
|
|
191
194
|
arrayIsEmpty(tableColumnNames) &&
|
|
192
195
|
collHas(schemaMap, tableName)
|
|
193
196
|
) {
|
|
194
|
-
await cmd('DROP
|
|
197
|
+
await cmd('DROP ' + TABLE + escapeId(tableName));
|
|
195
198
|
mapSet(schemaMap, tableName);
|
|
196
199
|
return;
|
|
197
200
|
}
|
|
198
201
|
if (!arrayIsEmpty(tableColumnNames) && !collHas(schemaMap, tableName)) {
|
|
199
202
|
await cmd(
|
|
200
|
-
`CREATE
|
|
201
|
-
|
|
202
|
-
|
|
203
|
+
`CREATE ` +
|
|
204
|
+
TABLE +
|
|
205
|
+
escapeId(tableName) +
|
|
206
|
+
'(' +
|
|
207
|
+
escapeId(rowIdColumnName) +
|
|
208
|
+
` PRIMARY KEY ON CONFLICT REPLACE${arrayJoin(
|
|
209
|
+
arrayMap(tableColumnNames, (cellId) => COMMA + escapeId(cellId)),
|
|
210
|
+
)});`,
|
|
203
211
|
);
|
|
204
212
|
mapSet(
|
|
205
213
|
schemaMap,
|
|
@@ -219,7 +227,7 @@ const getCommandFunctions = (
|
|
|
219
227
|
...arrayMap(tableColumnNames, async (columnName) => {
|
|
220
228
|
if (!collDel(columnNamesAccountedFor, columnName)) {
|
|
221
229
|
await cmd(
|
|
222
|
-
|
|
230
|
+
ALTER_TABLE + escapeId(tableName) + 'ADD' + escapeId(columnName),
|
|
223
231
|
);
|
|
224
232
|
mapSet(tableSchemaMap, columnName, EMPTY_STRING);
|
|
225
233
|
}
|
|
@@ -230,9 +238,10 @@ const getCommandFunctions = (
|
|
|
230
238
|
async (columnName) => {
|
|
231
239
|
if (columnName != rowIdColumnName) {
|
|
232
240
|
await cmd(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
241
|
+
ALTER_TABLE +
|
|
242
|
+
escapeId(tableName) +
|
|
243
|
+
'DROP' +
|
|
244
|
+
escapeId(columnName),
|
|
236
245
|
);
|
|
237
246
|
mapSet(tableSchemaMap, columnName);
|
|
238
247
|
}
|
|
@@ -243,13 +252,13 @@ const getCommandFunctions = (
|
|
|
243
252
|
}
|
|
244
253
|
if (partial) {
|
|
245
254
|
if (isUndefined(content)) {
|
|
246
|
-
await cmd(
|
|
255
|
+
await cmd(DELETE_FROM + escapeId(tableName) + WHERE + ' 1');
|
|
247
256
|
} else {
|
|
248
257
|
await promiseAll(
|
|
249
258
|
objToArray(content, async (row, rowId) => {
|
|
250
259
|
if (isUndefined(row)) {
|
|
251
260
|
await cmd(
|
|
252
|
-
|
|
261
|
+
DELETE_FROM +
|
|
253
262
|
escapeId(tableName) +
|
|
254
263
|
WHERE +
|
|
255
264
|
escapeId(rowIdColumnName) +
|
|
@@ -291,9 +300,10 @@ const getCommandFunctions = (
|
|
|
291
300
|
rowIdColumnName,
|
|
292
301
|
changingColumnNames,
|
|
293
302
|
args,
|
|
303
|
+
useOnConflict,
|
|
294
304
|
);
|
|
295
305
|
await cmd(
|
|
296
|
-
|
|
306
|
+
DELETE_FROM +
|
|
297
307
|
escapeId(tableName) +
|
|
298
308
|
WHERE +
|
|
299
309
|
escapeId(rowIdColumnName) +
|
|
@@ -303,7 +313,7 @@ const getCommandFunctions = (
|
|
|
303
313
|
deleteRowIds,
|
|
304
314
|
);
|
|
305
315
|
} else if (collHas(schemaMap, tableName)) {
|
|
306
|
-
await cmd(
|
|
316
|
+
await cmd(DELETE_FROM + escapeId(tableName) + WHERE + ' 1');
|
|
307
317
|
}
|
|
308
318
|
}
|
|
309
319
|
};
|
|
@@ -378,7 +388,6 @@ const jsonParse = JSON.parse;
|
|
|
378
388
|
|
|
379
389
|
const scheduleRunning = mapNew();
|
|
380
390
|
const scheduleActions = mapNew();
|
|
381
|
-
const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
|
|
382
391
|
const getStoreFunctions = (supportsMergeableStore, store) =>
|
|
383
392
|
!supportsMergeableStore || isUndefined(store.getMergeableContent)
|
|
384
393
|
? [
|
|
@@ -403,16 +412,15 @@ const createCustomPersister = (
|
|
|
403
412
|
delPersisterListener,
|
|
404
413
|
onIgnoredError,
|
|
405
414
|
supportsMergeableStore,
|
|
406
|
-
|
|
415
|
+
extra = {},
|
|
407
416
|
scheduleId = [],
|
|
408
417
|
) => {
|
|
409
|
-
let listenerId;
|
|
410
418
|
let loadSave = 0;
|
|
411
419
|
let loads = 0;
|
|
412
420
|
let saves = 0;
|
|
413
|
-
let listening = 0;
|
|
414
421
|
let action;
|
|
415
|
-
let
|
|
422
|
+
let autoLoadHandle;
|
|
423
|
+
let autoSaveListenerId;
|
|
416
424
|
mapEnsure(scheduleRunning, scheduleId, () => 0);
|
|
417
425
|
mapEnsure(scheduleActions, scheduleId, () => []);
|
|
418
426
|
const [isMergeableStore, getContent, getChanges, hasChanges] =
|
|
@@ -448,55 +456,51 @@ const createCustomPersister = (
|
|
|
448
456
|
}
|
|
449
457
|
return persister;
|
|
450
458
|
};
|
|
459
|
+
const setContentOrChanges = (contentOrChanges) => {
|
|
460
|
+
(isMergeableStore && isString(contentOrChanges?.[0])
|
|
461
|
+
? contentOrChanges?.[1][2] === 1
|
|
462
|
+
? store.applyMergeableChanges
|
|
463
|
+
: store.setMergeableContent
|
|
464
|
+
: contentOrChanges?.[2] === 1
|
|
465
|
+
? store.applyChanges
|
|
466
|
+
: store.setContent)(contentOrChanges);
|
|
467
|
+
};
|
|
451
468
|
const persister = {
|
|
452
469
|
load: async (initialTables, initialValues) =>
|
|
453
470
|
await loadLock(async () => {
|
|
454
471
|
try {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
: store.setContent)(content);
|
|
459
|
-
} catch {
|
|
472
|
+
setContentOrChanges(await getPersisted());
|
|
473
|
+
} catch (error) {
|
|
474
|
+
onIgnoredError?.(error);
|
|
460
475
|
store.setContent([initialTables, initialValues]);
|
|
461
476
|
}
|
|
462
477
|
}),
|
|
463
478
|
startAutoLoad: async (initialTables = {}, initialValues = {}) => {
|
|
464
|
-
persister.stopAutoLoad();
|
|
465
|
-
|
|
466
|
-
listening = 1;
|
|
467
|
-
listeningHandle = addPersisterListener(
|
|
479
|
+
await persister.stopAutoLoad().load(initialTables, initialValues);
|
|
480
|
+
autoLoadHandle = addPersisterListener(
|
|
468
481
|
async (getContent2, getChanges2) => {
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
(
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
)
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
const content = getContent2?.() ?? (await getPersisted());
|
|
480
|
-
(isMergeableStore && isMergeable(content)
|
|
481
|
-
? store.setMergeableContent
|
|
482
|
-
: store.setContent)(content);
|
|
483
|
-
} catch (error) {
|
|
484
|
-
onIgnoredError?.(error);
|
|
485
|
-
}
|
|
486
|
-
});
|
|
487
|
-
}
|
|
482
|
+
const changes = getChanges2?.();
|
|
483
|
+
await loadLock(async () => {
|
|
484
|
+
try {
|
|
485
|
+
setContentOrChanges(
|
|
486
|
+
changes ?? getContent2?.() ?? (await getPersisted()),
|
|
487
|
+
);
|
|
488
|
+
} catch (error) {
|
|
489
|
+
onIgnoredError?.(error);
|
|
490
|
+
}
|
|
491
|
+
});
|
|
488
492
|
},
|
|
489
493
|
);
|
|
490
494
|
return persister;
|
|
491
495
|
},
|
|
492
496
|
stopAutoLoad: () => {
|
|
493
|
-
if (
|
|
494
|
-
delPersisterListener(
|
|
495
|
-
|
|
496
|
-
listening = 0;
|
|
497
|
+
if (autoLoadHandle) {
|
|
498
|
+
delPersisterListener(autoLoadHandle);
|
|
499
|
+
autoLoadHandle = void 0;
|
|
497
500
|
}
|
|
498
501
|
return persister;
|
|
499
502
|
},
|
|
503
|
+
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
500
504
|
save: async (getChanges2) => {
|
|
501
505
|
/* istanbul ignore else */
|
|
502
506
|
if (loadSave != 1) {
|
|
@@ -518,7 +522,7 @@ const createCustomPersister = (
|
|
|
518
522
|
},
|
|
519
523
|
startAutoSave: async () => {
|
|
520
524
|
await persister.stopAutoSave().save();
|
|
521
|
-
|
|
525
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
522
526
|
const changes = getChanges();
|
|
523
527
|
if (hasChanges(changes)) {
|
|
524
528
|
persister.save(() => changes);
|
|
@@ -527,10 +531,11 @@ const createCustomPersister = (
|
|
|
527
531
|
return persister;
|
|
528
532
|
},
|
|
529
533
|
stopAutoSave: () => {
|
|
530
|
-
ifNotUndefined(
|
|
531
|
-
|
|
534
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
535
|
+
autoSaveListenerId = void 0;
|
|
532
536
|
return persister;
|
|
533
537
|
},
|
|
538
|
+
isAutoSaving: () => !isUndefined(autoSaveListenerId),
|
|
534
539
|
schedule: async (...actions) => {
|
|
535
540
|
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
536
541
|
await run();
|
|
@@ -539,10 +544,8 @@ const createCustomPersister = (
|
|
|
539
544
|
getStore: () => store,
|
|
540
545
|
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
541
546
|
getStats: () => ({loads, saves}),
|
|
547
|
+
...extra,
|
|
542
548
|
};
|
|
543
|
-
if (getThing) {
|
|
544
|
-
persister[getThing] = () => thing;
|
|
545
|
-
}
|
|
546
549
|
return objFreeze(persister);
|
|
547
550
|
};
|
|
548
551
|
|
|
@@ -557,9 +560,10 @@ const createJsonSqlitePersister = (
|
|
|
557
560
|
managedTableNames,
|
|
558
561
|
db,
|
|
559
562
|
getThing,
|
|
563
|
+
useOnConflict,
|
|
560
564
|
) => {
|
|
561
565
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
562
|
-
getCommandFunctions(cmd, managedTableNames, onIgnoredError);
|
|
566
|
+
getCommandFunctions(cmd, managedTableNames, onIgnoredError, useOnConflict);
|
|
563
567
|
const getPersisted = async () =>
|
|
564
568
|
await transaction(async () => {
|
|
565
569
|
await refreshSchema();
|
|
@@ -590,7 +594,7 @@ const createJsonSqlitePersister = (
|
|
|
590
594
|
delPersisterListener,
|
|
591
595
|
onIgnoredError,
|
|
592
596
|
false,
|
|
593
|
-
[getThing
|
|
597
|
+
{[getThing]: () => db},
|
|
594
598
|
db,
|
|
595
599
|
);
|
|
596
600
|
return persister;
|
|
@@ -697,7 +701,7 @@ const createTabularSqlitePersister = (
|
|
|
697
701
|
delPersisterListener,
|
|
698
702
|
onIgnoredError,
|
|
699
703
|
false,
|
|
700
|
-
[getThing
|
|
704
|
+
{[getThing]: () => db},
|
|
701
705
|
db,
|
|
702
706
|
);
|
|
703
707
|
return persister;
|
|
@@ -16,8 +16,6 @@ const arrayShift = (array) => array.shift();
|
|
|
16
16
|
|
|
17
17
|
const object = Object;
|
|
18
18
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
19
|
-
const objIds = object.keys;
|
|
20
|
-
const objFreeze = object.freeze;
|
|
21
19
|
const isObject = (obj) =>
|
|
22
20
|
!isUndefined(obj) &&
|
|
23
21
|
ifNotUndefined(
|
|
@@ -28,6 +26,8 @@ const isObject = (obj) =>
|
|
|
28
26
|
/* istanbul ignore next */
|
|
29
27
|
() => true,
|
|
30
28
|
);
|
|
29
|
+
const objIds = object.keys;
|
|
30
|
+
const objFreeze = object.freeze;
|
|
31
31
|
const objSize = (obj) => size(objIds(obj));
|
|
32
32
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
33
33
|
|
|
@@ -70,7 +70,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
|
70
70
|
|
|
71
71
|
const scheduleRunning = mapNew();
|
|
72
72
|
const scheduleActions = mapNew();
|
|
73
|
-
const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
|
|
74
73
|
const getStoreFunctions = (supportsMergeableStore, store) =>
|
|
75
74
|
!supportsMergeableStore || isUndefined(store.getMergeableContent)
|
|
76
75
|
? [
|
|
@@ -95,16 +94,15 @@ const createCustomPersister = (
|
|
|
95
94
|
delPersisterListener,
|
|
96
95
|
onIgnoredError,
|
|
97
96
|
supportsMergeableStore,
|
|
98
|
-
|
|
97
|
+
extra = {},
|
|
99
98
|
scheduleId = [],
|
|
100
99
|
) => {
|
|
101
|
-
let listenerId;
|
|
102
100
|
let loadSave = 0;
|
|
103
101
|
let loads = 0;
|
|
104
102
|
let saves = 0;
|
|
105
|
-
let listening = 0;
|
|
106
103
|
let action;
|
|
107
|
-
let
|
|
104
|
+
let autoLoadHandle;
|
|
105
|
+
let autoSaveListenerId;
|
|
108
106
|
mapEnsure(scheduleRunning, scheduleId, () => 0);
|
|
109
107
|
mapEnsure(scheduleActions, scheduleId, () => []);
|
|
110
108
|
const [isMergeableStore, getContent, getChanges, hasChanges] =
|
|
@@ -140,55 +138,51 @@ const createCustomPersister = (
|
|
|
140
138
|
}
|
|
141
139
|
return persister;
|
|
142
140
|
};
|
|
141
|
+
const setContentOrChanges = (contentOrChanges) => {
|
|
142
|
+
(isMergeableStore && isString(contentOrChanges?.[0])
|
|
143
|
+
? contentOrChanges?.[1][2] === 1
|
|
144
|
+
? store.applyMergeableChanges
|
|
145
|
+
: store.setMergeableContent
|
|
146
|
+
: contentOrChanges?.[2] === 1
|
|
147
|
+
? store.applyChanges
|
|
148
|
+
: store.setContent)(contentOrChanges);
|
|
149
|
+
};
|
|
143
150
|
const persister = {
|
|
144
151
|
load: async (initialTables, initialValues) =>
|
|
145
152
|
await loadLock(async () => {
|
|
146
153
|
try {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
: store.setContent)(content);
|
|
151
|
-
} catch {
|
|
154
|
+
setContentOrChanges(await getPersisted());
|
|
155
|
+
} catch (error) {
|
|
156
|
+
onIgnoredError?.(error);
|
|
152
157
|
store.setContent([initialTables, initialValues]);
|
|
153
158
|
}
|
|
154
159
|
}),
|
|
155
160
|
startAutoLoad: async (initialTables = {}, initialValues = {}) => {
|
|
156
|
-
persister.stopAutoLoad();
|
|
157
|
-
|
|
158
|
-
listening = 1;
|
|
159
|
-
listeningHandle = addPersisterListener(
|
|
161
|
+
await persister.stopAutoLoad().load(initialTables, initialValues);
|
|
162
|
+
autoLoadHandle = addPersisterListener(
|
|
160
163
|
async (getContent2, getChanges2) => {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const content = getContent2?.() ?? (await getPersisted());
|
|
172
|
-
(isMergeableStore && isMergeable(content)
|
|
173
|
-
? store.setMergeableContent
|
|
174
|
-
: store.setContent)(content);
|
|
175
|
-
} catch (error) {
|
|
176
|
-
onIgnoredError?.(error);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}
|
|
164
|
+
const changes = getChanges2?.();
|
|
165
|
+
await loadLock(async () => {
|
|
166
|
+
try {
|
|
167
|
+
setContentOrChanges(
|
|
168
|
+
changes ?? getContent2?.() ?? (await getPersisted()),
|
|
169
|
+
);
|
|
170
|
+
} catch (error) {
|
|
171
|
+
onIgnoredError?.(error);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
180
174
|
},
|
|
181
175
|
);
|
|
182
176
|
return persister;
|
|
183
177
|
},
|
|
184
178
|
stopAutoLoad: () => {
|
|
185
|
-
if (
|
|
186
|
-
delPersisterListener(
|
|
187
|
-
|
|
188
|
-
listening = 0;
|
|
179
|
+
if (autoLoadHandle) {
|
|
180
|
+
delPersisterListener(autoLoadHandle);
|
|
181
|
+
autoLoadHandle = void 0;
|
|
189
182
|
}
|
|
190
183
|
return persister;
|
|
191
184
|
},
|
|
185
|
+
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
192
186
|
save: async (getChanges2) => {
|
|
193
187
|
/* istanbul ignore else */
|
|
194
188
|
if (loadSave != 1) {
|
|
@@ -210,7 +204,7 @@ const createCustomPersister = (
|
|
|
210
204
|
},
|
|
211
205
|
startAutoSave: async () => {
|
|
212
206
|
await persister.stopAutoSave().save();
|
|
213
|
-
|
|
207
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
214
208
|
const changes = getChanges();
|
|
215
209
|
if (hasChanges(changes)) {
|
|
216
210
|
persister.save(() => changes);
|
|
@@ -219,10 +213,11 @@ const createCustomPersister = (
|
|
|
219
213
|
return persister;
|
|
220
214
|
},
|
|
221
215
|
stopAutoSave: () => {
|
|
222
|
-
ifNotUndefined(
|
|
223
|
-
|
|
216
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
217
|
+
autoSaveListenerId = void 0;
|
|
224
218
|
return persister;
|
|
225
219
|
},
|
|
220
|
+
isAutoSaving: () => !isUndefined(autoSaveListenerId),
|
|
226
221
|
schedule: async (...actions) => {
|
|
227
222
|
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
228
223
|
await run();
|
|
@@ -231,10 +226,8 @@ const createCustomPersister = (
|
|
|
231
226
|
getStore: () => store,
|
|
232
227
|
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
233
228
|
getStats: () => ({loads, saves}),
|
|
229
|
+
...extra,
|
|
234
230
|
};
|
|
235
|
-
if (getThing) {
|
|
236
|
-
persister[getThing] = () => thing;
|
|
237
|
-
}
|
|
238
231
|
return objFreeze(persister);
|
|
239
232
|
};
|
|
240
233
|
|
|
@@ -304,7 +297,7 @@ const createPartyKitPersister = (
|
|
|
304
297
|
delPersisterListener,
|
|
305
298
|
onIgnoredError,
|
|
306
299
|
false,
|
|
307
|
-
|
|
300
|
+
{getConnection: () => connection},
|
|
308
301
|
);
|
|
309
302
|
};
|
|
310
303
|
|