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
|
@@ -19,8 +19,6 @@ const arrayShift = (array) => array.shift();
|
|
|
19
19
|
|
|
20
20
|
const object = Object;
|
|
21
21
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
22
|
-
const objIds = object.keys;
|
|
23
|
-
const objFreeze = object.freeze;
|
|
24
22
|
const isObject = (obj) =>
|
|
25
23
|
!isUndefined(obj) &&
|
|
26
24
|
ifNotUndefined(
|
|
@@ -31,6 +29,8 @@ const isObject = (obj) =>
|
|
|
31
29
|
/* istanbul ignore next */
|
|
32
30
|
() => true,
|
|
33
31
|
);
|
|
32
|
+
const objIds = object.keys;
|
|
33
|
+
const objFreeze = object.freeze;
|
|
34
34
|
const objSize = (obj) => size(objIds(obj));
|
|
35
35
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
36
36
|
|
|
@@ -58,7 +58,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
|
58
58
|
|
|
59
59
|
const scheduleRunning = mapNew();
|
|
60
60
|
const scheduleActions = mapNew();
|
|
61
|
-
const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
|
|
62
61
|
const getStoreFunctions = (supportsMergeableStore, store) =>
|
|
63
62
|
!supportsMergeableStore || isUndefined(store.getMergeableContent)
|
|
64
63
|
? [
|
|
@@ -83,16 +82,15 @@ const createCustomPersister = (
|
|
|
83
82
|
delPersisterListener,
|
|
84
83
|
onIgnoredError,
|
|
85
84
|
supportsMergeableStore,
|
|
86
|
-
|
|
85
|
+
extra = {},
|
|
87
86
|
scheduleId = [],
|
|
88
87
|
) => {
|
|
89
|
-
let listenerId;
|
|
90
88
|
let loadSave = 0;
|
|
91
89
|
let loads = 0;
|
|
92
90
|
let saves = 0;
|
|
93
|
-
let listening = 0;
|
|
94
91
|
let action;
|
|
95
|
-
let
|
|
92
|
+
let autoLoadHandle;
|
|
93
|
+
let autoSaveListenerId;
|
|
96
94
|
mapEnsure(scheduleRunning, scheduleId, () => 0);
|
|
97
95
|
mapEnsure(scheduleActions, scheduleId, () => []);
|
|
98
96
|
const [isMergeableStore, getContent, getChanges, hasChanges] =
|
|
@@ -128,55 +126,51 @@ const createCustomPersister = (
|
|
|
128
126
|
}
|
|
129
127
|
return persister;
|
|
130
128
|
};
|
|
129
|
+
const setContentOrChanges = (contentOrChanges) => {
|
|
130
|
+
(isMergeableStore && isString(contentOrChanges?.[0])
|
|
131
|
+
? contentOrChanges?.[1][2] === 1
|
|
132
|
+
? store.applyMergeableChanges
|
|
133
|
+
: store.setMergeableContent
|
|
134
|
+
: contentOrChanges?.[2] === 1
|
|
135
|
+
? store.applyChanges
|
|
136
|
+
: store.setContent)(contentOrChanges);
|
|
137
|
+
};
|
|
131
138
|
const persister = {
|
|
132
139
|
load: async (initialTables, initialValues) =>
|
|
133
140
|
await loadLock(async () => {
|
|
134
141
|
try {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
: store.setContent)(content);
|
|
139
|
-
} catch {
|
|
142
|
+
setContentOrChanges(await getPersisted());
|
|
143
|
+
} catch (error) {
|
|
144
|
+
onIgnoredError?.(error);
|
|
140
145
|
store.setContent([initialTables, initialValues]);
|
|
141
146
|
}
|
|
142
147
|
}),
|
|
143
148
|
startAutoLoad: async (initialTables = {}, initialValues = {}) => {
|
|
144
|
-
persister.stopAutoLoad();
|
|
145
|
-
|
|
146
|
-
listening = 1;
|
|
147
|
-
listeningHandle = addPersisterListener(
|
|
149
|
+
await persister.stopAutoLoad().load(initialTables, initialValues);
|
|
150
|
+
autoLoadHandle = addPersisterListener(
|
|
148
151
|
async (getContent2, getChanges2) => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const content = getContent2?.() ?? (await getPersisted());
|
|
160
|
-
(isMergeableStore && isMergeable(content)
|
|
161
|
-
? store.setMergeableContent
|
|
162
|
-
: store.setContent)(content);
|
|
163
|
-
} catch (error) {
|
|
164
|
-
onIgnoredError?.(error);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
152
|
+
const changes = getChanges2?.();
|
|
153
|
+
await loadLock(async () => {
|
|
154
|
+
try {
|
|
155
|
+
setContentOrChanges(
|
|
156
|
+
changes ?? getContent2?.() ?? (await getPersisted()),
|
|
157
|
+
);
|
|
158
|
+
} catch (error) {
|
|
159
|
+
onIgnoredError?.(error);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
168
162
|
},
|
|
169
163
|
);
|
|
170
164
|
return persister;
|
|
171
165
|
},
|
|
172
166
|
stopAutoLoad: () => {
|
|
173
|
-
if (
|
|
174
|
-
delPersisterListener(
|
|
175
|
-
|
|
176
|
-
listening = 0;
|
|
167
|
+
if (autoLoadHandle) {
|
|
168
|
+
delPersisterListener(autoLoadHandle);
|
|
169
|
+
autoLoadHandle = void 0;
|
|
177
170
|
}
|
|
178
171
|
return persister;
|
|
179
172
|
},
|
|
173
|
+
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
180
174
|
save: async (getChanges2) => {
|
|
181
175
|
/* istanbul ignore else */
|
|
182
176
|
if (loadSave != 1) {
|
|
@@ -198,7 +192,7 @@ const createCustomPersister = (
|
|
|
198
192
|
},
|
|
199
193
|
startAutoSave: async () => {
|
|
200
194
|
await persister.stopAutoSave().save();
|
|
201
|
-
|
|
195
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
202
196
|
const changes = getChanges();
|
|
203
197
|
if (hasChanges(changes)) {
|
|
204
198
|
persister.save(() => changes);
|
|
@@ -207,10 +201,11 @@ const createCustomPersister = (
|
|
|
207
201
|
return persister;
|
|
208
202
|
},
|
|
209
203
|
stopAutoSave: () => {
|
|
210
|
-
ifNotUndefined(
|
|
211
|
-
|
|
204
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
205
|
+
autoSaveListenerId = void 0;
|
|
212
206
|
return persister;
|
|
213
207
|
},
|
|
208
|
+
isAutoSaving: () => !isUndefined(autoSaveListenerId),
|
|
214
209
|
schedule: async (...actions) => {
|
|
215
210
|
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
216
211
|
await run();
|
|
@@ -219,10 +214,8 @@ const createCustomPersister = (
|
|
|
219
214
|
getStore: () => store,
|
|
220
215
|
destroy: () => persister.stopAutoLoad().stopAutoSave(),
|
|
221
216
|
getStats: () => ({loads, saves}),
|
|
217
|
+
...extra,
|
|
222
218
|
};
|
|
223
|
-
if (getThing) {
|
|
224
|
-
persister[getThing] = () => thing;
|
|
225
|
-
}
|
|
226
219
|
return objFreeze(persister);
|
|
227
220
|
};
|
|
228
221
|
|
|
@@ -268,7 +261,7 @@ const createRemotePersister = (
|
|
|
268
261
|
delPersisterListener,
|
|
269
262
|
onIgnoredError,
|
|
270
263
|
false,
|
|
271
|
-
|
|
264
|
+
{getUrls: () => [loadUrl, saveUrl]},
|
|
272
265
|
);
|
|
273
266
|
};
|
|
274
267
|
|
|
@@ -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;
|