tinybase 5.0.0-beta.10 → 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/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 -1
- 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 -1
- package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
- package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -1
- package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs/synchronizers.cjs +1 -1
- 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/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.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 -1
- 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 -1
- package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
- package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -1
- package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
- package/lib/cjs-es6/synchronizers.cjs +1 -1
- 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/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +1 -1
- package/lib/debug/persisters/persister-automerge.js +113 -101
- package/lib/debug/persisters/persister-browser.js +113 -97
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +113 -102
- package/lib/debug/persisters/persister-electric-sql.js +113 -102
- package/lib/debug/persisters/persister-expo-sqlite-next.js +113 -102
- package/lib/debug/persisters/persister-expo-sqlite.js +113 -102
- package/lib/debug/persisters/persister-file.js +108 -96
- package/lib/debug/persisters/persister-indexed-db.js +108 -96
- package/lib/debug/persisters/persister-libsql.js +113 -102
- package/lib/debug/persisters/persister-partykit-client.js +112 -100
- package/lib/debug/persisters/persister-powersync.js +113 -102
- package/lib/debug/persisters/persister-remote.js +108 -96
- package/lib/debug/persisters/persister-sqlite-wasm.js +113 -102
- package/lib/debug/persisters/persister-sqlite3.js +113 -102
- package/lib/debug/persisters/persister-yjs.js +113 -101
- package/lib/debug/persisters.js +107 -95
- package/lib/debug/store.js +1 -1
- package/lib/debug/synchronizers/synchronizer-local.js +114 -102
- package/lib/debug/synchronizers/synchronizer-ws-client.js +113 -101
- package/lib/debug/synchronizers/synchronizer-ws-server.js +151 -6
- package/lib/debug/synchronizers.js +113 -101
- package/lib/debug/tinybase.js +114 -102
- package/lib/debug/ui-react-dom.js +114 -98
- 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 -1
- 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 -1
- package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/es6/synchronizers.js +1 -1
- 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/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.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 -1
- 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 -1
- package/lib/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/synchronizers.js +1 -1
- package/lib/synchronizers.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/persisters/persister-browser.d.ts +2 -2
- package/lib/types/persisters/persister-file.d.ts +1 -1
- package/lib/types/persisters.d.ts +73 -47
- package/lib/types/synchronizers/synchronizer-ws-server.d.ts +24 -3
- package/lib/types/synchronizers.d.ts +1 -1
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
- package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
- package/lib/types/with-schemas/persisters.d.ts +99 -87
- package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +24 -3
- package/lib/types/with-schemas/synchronizers.d.ts +1 -1
- 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 -1
- 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 -1
- package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd/synchronizers.js +1 -1
- 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/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.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 -1
- 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 -1
- package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
- package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -1
- package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
- package/lib/umd-es6/synchronizers.js +1 -1
- 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/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/package.json +1 -1
- package/readme.md +2 -2
|
@@ -388,24 +388,27 @@ const jsonParse = JSON.parse;
|
|
|
388
388
|
|
|
389
389
|
const scheduleRunning = mapNew();
|
|
390
390
|
const scheduleActions = mapNew();
|
|
391
|
-
const getStoreFunctions = (
|
|
392
|
-
|
|
391
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
392
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
393
393
|
? [
|
|
394
|
-
0,
|
|
395
|
-
store.getContent,
|
|
396
|
-
store.getTransactionChanges,
|
|
397
|
-
([changedTables, changedValues]) =>
|
|
398
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
399
|
-
store.setContent,
|
|
400
|
-
]
|
|
401
|
-
: [
|
|
402
394
|
1,
|
|
403
395
|
store.getMergeableContent,
|
|
404
396
|
store.getTransactionMergeableChanges,
|
|
405
397
|
([[changedTables], [changedValues]]) =>
|
|
406
398
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
407
399
|
store.setDefaultContent,
|
|
408
|
-
]
|
|
400
|
+
]
|
|
401
|
+
: supportedStoreType != 2
|
|
402
|
+
? [
|
|
403
|
+
0,
|
|
404
|
+
store.getContent,
|
|
405
|
+
store.getTransactionChanges,
|
|
406
|
+
([changedTables, changedValues]) =>
|
|
407
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
408
|
+
store.setContent,
|
|
409
|
+
]
|
|
410
|
+
: /* istanbul ignore next */
|
|
411
|
+
0;
|
|
409
412
|
const createCustomPersister = (
|
|
410
413
|
store,
|
|
411
414
|
getPersisted,
|
|
@@ -413,7 +416,7 @@ const createCustomPersister = (
|
|
|
413
416
|
addPersisterListener,
|
|
414
417
|
delPersisterListener,
|
|
415
418
|
onIgnoredError,
|
|
416
|
-
|
|
419
|
+
supportedStoreType,
|
|
417
420
|
extra = {},
|
|
418
421
|
scheduleId = [],
|
|
419
422
|
) => {
|
|
@@ -431,7 +434,7 @@ const createCustomPersister = (
|
|
|
431
434
|
getChanges,
|
|
432
435
|
hasChanges,
|
|
433
436
|
setDefaultContent,
|
|
434
|
-
] = getStoreFunctions(
|
|
437
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
435
438
|
const run = async () => {
|
|
436
439
|
/* istanbul ignore else */
|
|
437
440
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -449,20 +452,6 @@ const createCustomPersister = (
|
|
|
449
452
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
450
453
|
}
|
|
451
454
|
};
|
|
452
|
-
const loadLock = async (actions) => {
|
|
453
|
-
/* istanbul ignore else */
|
|
454
|
-
if (loadSave != 2) {
|
|
455
|
-
loadSave = 1;
|
|
456
|
-
{
|
|
457
|
-
loads++;
|
|
458
|
-
}
|
|
459
|
-
await persister.schedule(async () => {
|
|
460
|
-
await actions();
|
|
461
|
-
loadSave = 0;
|
|
462
|
-
});
|
|
463
|
-
}
|
|
464
|
-
return persister;
|
|
465
|
-
};
|
|
466
455
|
const setContentOrChanges = (contentOrChanges) => {
|
|
467
456
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
468
457
|
? contentOrChanges?.[2] === 1
|
|
@@ -472,9 +461,14 @@ const createCustomPersister = (
|
|
|
472
461
|
? store.applyChanges
|
|
473
462
|
: store.setContent)(contentOrChanges);
|
|
474
463
|
};
|
|
475
|
-
const
|
|
476
|
-
|
|
477
|
-
|
|
464
|
+
const load = async (initialContent) => {
|
|
465
|
+
/* istanbul ignore else */
|
|
466
|
+
if (loadSave != 2) {
|
|
467
|
+
loadSave = 1;
|
|
468
|
+
{
|
|
469
|
+
loads++;
|
|
470
|
+
}
|
|
471
|
+
await schedule(async () => {
|
|
478
472
|
try {
|
|
479
473
|
setContentOrChanges(await getPersisted());
|
|
480
474
|
} catch (error) {
|
|
@@ -483,76 +477,94 @@ const createCustomPersister = (
|
|
|
483
477
|
setDefaultContent(initialContent);
|
|
484
478
|
}
|
|
485
479
|
}
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
});
|
|
501
|
-
},
|
|
502
|
-
);
|
|
503
|
-
return persister;
|
|
504
|
-
},
|
|
505
|
-
stopAutoLoad: () => {
|
|
506
|
-
if (autoLoadHandle) {
|
|
507
|
-
delPersisterListener(autoLoadHandle);
|
|
508
|
-
autoLoadHandle = void 0;
|
|
509
|
-
}
|
|
510
|
-
return persister;
|
|
511
|
-
},
|
|
512
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
513
|
-
save: async (getChanges2) => {
|
|
514
|
-
/* istanbul ignore else */
|
|
515
|
-
if (loadSave != 1) {
|
|
516
|
-
loadSave = 2;
|
|
517
|
-
{
|
|
518
|
-
saves++;
|
|
519
|
-
}
|
|
520
|
-
await persister.schedule(async () => {
|
|
521
|
-
try {
|
|
522
|
-
await setPersisted(getContent, getChanges2);
|
|
523
|
-
} catch (error) {
|
|
524
|
-
/* istanbul ignore next */
|
|
525
|
-
onIgnoredError?.(error);
|
|
480
|
+
loadSave = 0;
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
return persister;
|
|
484
|
+
};
|
|
485
|
+
const startAutoLoad = async (initialContent) => {
|
|
486
|
+
await stopAutoLoad().load(initialContent);
|
|
487
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
488
|
+
if (changes || content) {
|
|
489
|
+
/* istanbul ignore else */
|
|
490
|
+
if (loadSave != 2) {
|
|
491
|
+
loadSave = 1;
|
|
492
|
+
{
|
|
493
|
+
loads++;
|
|
526
494
|
}
|
|
495
|
+
setContentOrChanges(changes ?? content);
|
|
527
496
|
loadSave = 0;
|
|
528
|
-
}
|
|
497
|
+
}
|
|
498
|
+
} else {
|
|
499
|
+
await load();
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
return persister;
|
|
503
|
+
};
|
|
504
|
+
const stopAutoLoad = () => {
|
|
505
|
+
if (autoLoadHandle) {
|
|
506
|
+
delPersisterListener(autoLoadHandle);
|
|
507
|
+
autoLoadHandle = void 0;
|
|
508
|
+
}
|
|
509
|
+
return persister;
|
|
510
|
+
};
|
|
511
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
512
|
+
const save = async (changes) => {
|
|
513
|
+
/* istanbul ignore else */
|
|
514
|
+
if (loadSave != 1) {
|
|
515
|
+
loadSave = 2;
|
|
516
|
+
{
|
|
517
|
+
saves++;
|
|
529
518
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
if (hasChanges(changes)) {
|
|
537
|
-
persister.save(() => changes);
|
|
519
|
+
await schedule(async () => {
|
|
520
|
+
try {
|
|
521
|
+
await setPersisted(getContent, changes);
|
|
522
|
+
} catch (error) {
|
|
523
|
+
/* istanbul ignore next */
|
|
524
|
+
onIgnoredError?.(error);
|
|
538
525
|
}
|
|
526
|
+
loadSave = 0;
|
|
539
527
|
});
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
528
|
+
}
|
|
529
|
+
return persister;
|
|
530
|
+
};
|
|
531
|
+
const startAutoSave = async () => {
|
|
532
|
+
await stopAutoSave().save();
|
|
533
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
534
|
+
const changes = getChanges();
|
|
535
|
+
if (hasChanges(changes)) {
|
|
536
|
+
save(changes);
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
return persister;
|
|
540
|
+
};
|
|
541
|
+
const stopAutoSave = () => {
|
|
542
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
543
|
+
autoSaveListenerId = void 0;
|
|
544
|
+
return persister;
|
|
545
|
+
};
|
|
546
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
547
|
+
const schedule = async (...actions) => {
|
|
548
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
549
|
+
await run();
|
|
550
|
+
return persister;
|
|
551
|
+
};
|
|
552
|
+
const getStore = () => store;
|
|
553
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
554
|
+
const getStats = () => ({loads, saves});
|
|
555
|
+
const persister = {
|
|
556
|
+
load,
|
|
557
|
+
startAutoLoad,
|
|
558
|
+
stopAutoLoad,
|
|
559
|
+
isAutoLoading,
|
|
560
|
+
save,
|
|
561
|
+
startAutoSave,
|
|
562
|
+
stopAutoSave,
|
|
563
|
+
isAutoSaving,
|
|
564
|
+
schedule,
|
|
565
|
+
getStore,
|
|
566
|
+
destroy,
|
|
567
|
+
getStats,
|
|
556
568
|
...extra,
|
|
557
569
|
};
|
|
558
570
|
return objFreeze(persister);
|
|
@@ -604,7 +616,7 @@ const createJsonSqlitePersister = (
|
|
|
604
616
|
addPersisterListener,
|
|
605
617
|
delPersisterListener,
|
|
606
618
|
onIgnoredError,
|
|
607
|
-
|
|
619
|
+
1,
|
|
608
620
|
{[getThing]: () => db},
|
|
609
621
|
db,
|
|
610
622
|
);
|
|
@@ -691,13 +703,12 @@ const createTabularSqlitePersister = (
|
|
|
691
703
|
? [tables, values]
|
|
692
704
|
: void 0;
|
|
693
705
|
});
|
|
694
|
-
const setPersisted = async (getContent,
|
|
706
|
+
const setPersisted = async (getContent, changes) =>
|
|
695
707
|
await transaction(async () => {
|
|
696
708
|
await refreshSchema();
|
|
697
|
-
if (!isUndefined(
|
|
698
|
-
|
|
699
|
-
await
|
|
700
|
-
await saveValues(valueChanges, true);
|
|
709
|
+
if (!isUndefined(changes)) {
|
|
710
|
+
await saveTables(changes[0], true);
|
|
711
|
+
await saveValues(changes[1], true);
|
|
701
712
|
} else {
|
|
702
713
|
const [tables, values] = getContent();
|
|
703
714
|
await saveTables(tables);
|
|
@@ -711,7 +722,7 @@ const createTabularSqlitePersister = (
|
|
|
711
722
|
addPersisterListener,
|
|
712
723
|
delPersisterListener,
|
|
713
724
|
onIgnoredError,
|
|
714
|
-
|
|
725
|
+
1,
|
|
715
726
|
{[getThing]: () => db},
|
|
716
727
|
db,
|
|
717
728
|
);
|
|
@@ -71,24 +71,27 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
|
71
71
|
|
|
72
72
|
const scheduleRunning = mapNew();
|
|
73
73
|
const scheduleActions = mapNew();
|
|
74
|
-
const getStoreFunctions = (
|
|
75
|
-
|
|
74
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
75
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
76
76
|
? [
|
|
77
|
-
0,
|
|
78
|
-
store.getContent,
|
|
79
|
-
store.getTransactionChanges,
|
|
80
|
-
([changedTables, changedValues]) =>
|
|
81
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
82
|
-
store.setContent,
|
|
83
|
-
]
|
|
84
|
-
: [
|
|
85
77
|
1,
|
|
86
78
|
store.getMergeableContent,
|
|
87
79
|
store.getTransactionMergeableChanges,
|
|
88
80
|
([[changedTables], [changedValues]]) =>
|
|
89
81
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
90
82
|
store.setDefaultContent,
|
|
91
|
-
]
|
|
83
|
+
]
|
|
84
|
+
: supportedStoreType != 2
|
|
85
|
+
? [
|
|
86
|
+
0,
|
|
87
|
+
store.getContent,
|
|
88
|
+
store.getTransactionChanges,
|
|
89
|
+
([changedTables, changedValues]) =>
|
|
90
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
91
|
+
store.setContent,
|
|
92
|
+
]
|
|
93
|
+
: /* istanbul ignore next */
|
|
94
|
+
0;
|
|
92
95
|
const createCustomPersister = (
|
|
93
96
|
store,
|
|
94
97
|
getPersisted,
|
|
@@ -96,7 +99,7 @@ const createCustomPersister = (
|
|
|
96
99
|
addPersisterListener,
|
|
97
100
|
delPersisterListener,
|
|
98
101
|
onIgnoredError,
|
|
99
|
-
|
|
102
|
+
supportedStoreType,
|
|
100
103
|
extra = {},
|
|
101
104
|
scheduleId = [],
|
|
102
105
|
) => {
|
|
@@ -114,7 +117,7 @@ const createCustomPersister = (
|
|
|
114
117
|
getChanges,
|
|
115
118
|
hasChanges,
|
|
116
119
|
setDefaultContent,
|
|
117
|
-
] = getStoreFunctions(
|
|
120
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
118
121
|
const run = async () => {
|
|
119
122
|
/* istanbul ignore else */
|
|
120
123
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -132,20 +135,6 @@ const createCustomPersister = (
|
|
|
132
135
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
133
136
|
}
|
|
134
137
|
};
|
|
135
|
-
const loadLock = async (actions) => {
|
|
136
|
-
/* istanbul ignore else */
|
|
137
|
-
if (loadSave != 2) {
|
|
138
|
-
loadSave = 1;
|
|
139
|
-
{
|
|
140
|
-
loads++;
|
|
141
|
-
}
|
|
142
|
-
await persister.schedule(async () => {
|
|
143
|
-
await actions();
|
|
144
|
-
loadSave = 0;
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
return persister;
|
|
148
|
-
};
|
|
149
138
|
const setContentOrChanges = (contentOrChanges) => {
|
|
150
139
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
151
140
|
? contentOrChanges?.[2] === 1
|
|
@@ -155,9 +144,14 @@ const createCustomPersister = (
|
|
|
155
144
|
? store.applyChanges
|
|
156
145
|
: store.setContent)(contentOrChanges);
|
|
157
146
|
};
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
147
|
+
const load = async (initialContent) => {
|
|
148
|
+
/* istanbul ignore else */
|
|
149
|
+
if (loadSave != 2) {
|
|
150
|
+
loadSave = 1;
|
|
151
|
+
{
|
|
152
|
+
loads++;
|
|
153
|
+
}
|
|
154
|
+
await schedule(async () => {
|
|
161
155
|
try {
|
|
162
156
|
setContentOrChanges(await getPersisted());
|
|
163
157
|
} catch (error) {
|
|
@@ -166,76 +160,94 @@ const createCustomPersister = (
|
|
|
166
160
|
setDefaultContent(initialContent);
|
|
167
161
|
}
|
|
168
162
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
});
|
|
184
|
-
},
|
|
185
|
-
);
|
|
186
|
-
return persister;
|
|
187
|
-
},
|
|
188
|
-
stopAutoLoad: () => {
|
|
189
|
-
if (autoLoadHandle) {
|
|
190
|
-
delPersisterListener(autoLoadHandle);
|
|
191
|
-
autoLoadHandle = void 0;
|
|
192
|
-
}
|
|
193
|
-
return persister;
|
|
194
|
-
},
|
|
195
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
196
|
-
save: async (getChanges2) => {
|
|
197
|
-
/* istanbul ignore else */
|
|
198
|
-
if (loadSave != 1) {
|
|
199
|
-
loadSave = 2;
|
|
200
|
-
{
|
|
201
|
-
saves++;
|
|
202
|
-
}
|
|
203
|
-
await persister.schedule(async () => {
|
|
204
|
-
try {
|
|
205
|
-
await setPersisted(getContent, getChanges2);
|
|
206
|
-
} catch (error) {
|
|
207
|
-
/* istanbul ignore next */
|
|
208
|
-
onIgnoredError?.(error);
|
|
163
|
+
loadSave = 0;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return persister;
|
|
167
|
+
};
|
|
168
|
+
const startAutoLoad = async (initialContent) => {
|
|
169
|
+
await stopAutoLoad().load(initialContent);
|
|
170
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
171
|
+
if (changes || content) {
|
|
172
|
+
/* istanbul ignore else */
|
|
173
|
+
if (loadSave != 2) {
|
|
174
|
+
loadSave = 1;
|
|
175
|
+
{
|
|
176
|
+
loads++;
|
|
209
177
|
}
|
|
178
|
+
setContentOrChanges(changes ?? content);
|
|
210
179
|
loadSave = 0;
|
|
211
|
-
}
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
await load();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
return persister;
|
|
186
|
+
};
|
|
187
|
+
const stopAutoLoad = () => {
|
|
188
|
+
if (autoLoadHandle) {
|
|
189
|
+
delPersisterListener(autoLoadHandle);
|
|
190
|
+
autoLoadHandle = void 0;
|
|
191
|
+
}
|
|
192
|
+
return persister;
|
|
193
|
+
};
|
|
194
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
195
|
+
const save = async (changes) => {
|
|
196
|
+
/* istanbul ignore else */
|
|
197
|
+
if (loadSave != 1) {
|
|
198
|
+
loadSave = 2;
|
|
199
|
+
{
|
|
200
|
+
saves++;
|
|
212
201
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
if (hasChanges(changes)) {
|
|
220
|
-
persister.save(() => changes);
|
|
202
|
+
await schedule(async () => {
|
|
203
|
+
try {
|
|
204
|
+
await setPersisted(getContent, changes);
|
|
205
|
+
} catch (error) {
|
|
206
|
+
/* istanbul ignore next */
|
|
207
|
+
onIgnoredError?.(error);
|
|
221
208
|
}
|
|
209
|
+
loadSave = 0;
|
|
222
210
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
211
|
+
}
|
|
212
|
+
return persister;
|
|
213
|
+
};
|
|
214
|
+
const startAutoSave = async () => {
|
|
215
|
+
await stopAutoSave().save();
|
|
216
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
217
|
+
const changes = getChanges();
|
|
218
|
+
if (hasChanges(changes)) {
|
|
219
|
+
save(changes);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
return persister;
|
|
223
|
+
};
|
|
224
|
+
const stopAutoSave = () => {
|
|
225
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
226
|
+
autoSaveListenerId = void 0;
|
|
227
|
+
return persister;
|
|
228
|
+
};
|
|
229
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
230
|
+
const schedule = async (...actions) => {
|
|
231
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
232
|
+
await run();
|
|
233
|
+
return persister;
|
|
234
|
+
};
|
|
235
|
+
const getStore = () => store;
|
|
236
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
237
|
+
const getStats = () => ({loads, saves});
|
|
238
|
+
const persister = {
|
|
239
|
+
load,
|
|
240
|
+
startAutoLoad,
|
|
241
|
+
stopAutoLoad,
|
|
242
|
+
isAutoLoading,
|
|
243
|
+
save,
|
|
244
|
+
startAutoSave,
|
|
245
|
+
stopAutoSave,
|
|
246
|
+
isAutoSaving,
|
|
247
|
+
schedule,
|
|
248
|
+
getStore,
|
|
249
|
+
destroy,
|
|
250
|
+
getStats,
|
|
239
251
|
...extra,
|
|
240
252
|
};
|
|
241
253
|
return objFreeze(persister);
|
|
@@ -276,9 +288,9 @@ const createPartyKitPersister = (
|
|
|
276
288
|
})
|
|
277
289
|
).json();
|
|
278
290
|
const getPersisted = async () => await getOrSetStore();
|
|
279
|
-
const setPersisted = async (getContent,
|
|
280
|
-
if (
|
|
281
|
-
connection.send(construct(messagePrefix, SET_CHANGES,
|
|
291
|
+
const setPersisted = async (getContent, changes) => {
|
|
292
|
+
if (changes) {
|
|
293
|
+
connection.send(construct(messagePrefix, SET_CHANGES, changes));
|
|
282
294
|
} else {
|
|
283
295
|
await getOrSetStore(getContent());
|
|
284
296
|
}
|
|
@@ -289,7 +301,7 @@ const createPartyKitPersister = (
|
|
|
289
301
|
deconstruct(messagePrefix, event.data, 1),
|
|
290
302
|
([type, payload]) => {
|
|
291
303
|
if (type == SET_CHANGES) {
|
|
292
|
-
listener(void 0,
|
|
304
|
+
listener(void 0, payload);
|
|
293
305
|
}
|
|
294
306
|
},
|
|
295
307
|
);
|
|
@@ -306,7 +318,7 @@ const createPartyKitPersister = (
|
|
|
306
318
|
addPersisterListener,
|
|
307
319
|
delPersisterListener,
|
|
308
320
|
onIgnoredError,
|
|
309
|
-
|
|
321
|
+
1,
|
|
310
322
|
{getConnection: () => connection},
|
|
311
323
|
);
|
|
312
324
|
};
|