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
|
@@ -79,24 +79,27 @@ const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
|
|
|
79
79
|
|
|
80
80
|
const scheduleRunning = mapNew();
|
|
81
81
|
const scheduleActions = mapNew();
|
|
82
|
-
const getStoreFunctions = (
|
|
83
|
-
|
|
82
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
83
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
84
84
|
? [
|
|
85
|
-
0,
|
|
86
|
-
store.getContent,
|
|
87
|
-
store.getTransactionChanges,
|
|
88
|
-
([changedTables, changedValues]) =>
|
|
89
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
90
|
-
store.setContent,
|
|
91
|
-
]
|
|
92
|
-
: [
|
|
93
85
|
1,
|
|
94
86
|
store.getMergeableContent,
|
|
95
87
|
store.getTransactionMergeableChanges,
|
|
96
88
|
([[changedTables], [changedValues]]) =>
|
|
97
89
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
98
90
|
store.setDefaultContent,
|
|
99
|
-
]
|
|
91
|
+
]
|
|
92
|
+
: supportedStoreType != 2
|
|
93
|
+
? [
|
|
94
|
+
0,
|
|
95
|
+
store.getContent,
|
|
96
|
+
store.getTransactionChanges,
|
|
97
|
+
([changedTables, changedValues]) =>
|
|
98
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
99
|
+
store.setContent,
|
|
100
|
+
]
|
|
101
|
+
: /* istanbul ignore next */
|
|
102
|
+
0;
|
|
100
103
|
const createCustomPersister = (
|
|
101
104
|
store,
|
|
102
105
|
getPersisted,
|
|
@@ -104,7 +107,7 @@ const createCustomPersister = (
|
|
|
104
107
|
addPersisterListener,
|
|
105
108
|
delPersisterListener,
|
|
106
109
|
onIgnoredError,
|
|
107
|
-
|
|
110
|
+
supportedStoreType,
|
|
108
111
|
extra = {},
|
|
109
112
|
scheduleId = [],
|
|
110
113
|
) => {
|
|
@@ -122,7 +125,7 @@ const createCustomPersister = (
|
|
|
122
125
|
getChanges,
|
|
123
126
|
hasChanges,
|
|
124
127
|
setDefaultContent,
|
|
125
|
-
] = getStoreFunctions(
|
|
128
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
126
129
|
const run = async () => {
|
|
127
130
|
/* istanbul ignore else */
|
|
128
131
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -140,20 +143,6 @@ const createCustomPersister = (
|
|
|
140
143
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
141
144
|
}
|
|
142
145
|
};
|
|
143
|
-
const loadLock = async (actions) => {
|
|
144
|
-
/* istanbul ignore else */
|
|
145
|
-
if (loadSave != 2) {
|
|
146
|
-
loadSave = 1;
|
|
147
|
-
{
|
|
148
|
-
loads++;
|
|
149
|
-
}
|
|
150
|
-
await persister.schedule(async () => {
|
|
151
|
-
await actions();
|
|
152
|
-
loadSave = 0;
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
return persister;
|
|
156
|
-
};
|
|
157
146
|
const setContentOrChanges = (contentOrChanges) => {
|
|
158
147
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
159
148
|
? contentOrChanges?.[2] === 1
|
|
@@ -163,9 +152,14 @@ const createCustomPersister = (
|
|
|
163
152
|
? store.applyChanges
|
|
164
153
|
: store.setContent)(contentOrChanges);
|
|
165
154
|
};
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
155
|
+
const load = async (initialContent) => {
|
|
156
|
+
/* istanbul ignore else */
|
|
157
|
+
if (loadSave != 2) {
|
|
158
|
+
loadSave = 1;
|
|
159
|
+
{
|
|
160
|
+
loads++;
|
|
161
|
+
}
|
|
162
|
+
await schedule(async () => {
|
|
169
163
|
try {
|
|
170
164
|
setContentOrChanges(await getPersisted());
|
|
171
165
|
} catch (error) {
|
|
@@ -174,76 +168,94 @@ const createCustomPersister = (
|
|
|
174
168
|
setDefaultContent(initialContent);
|
|
175
169
|
}
|
|
176
170
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
});
|
|
192
|
-
},
|
|
193
|
-
);
|
|
194
|
-
return persister;
|
|
195
|
-
},
|
|
196
|
-
stopAutoLoad: () => {
|
|
197
|
-
if (autoLoadHandle) {
|
|
198
|
-
delPersisterListener(autoLoadHandle);
|
|
199
|
-
autoLoadHandle = void 0;
|
|
200
|
-
}
|
|
201
|
-
return persister;
|
|
202
|
-
},
|
|
203
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
204
|
-
save: async (getChanges2) => {
|
|
205
|
-
/* istanbul ignore else */
|
|
206
|
-
if (loadSave != 1) {
|
|
207
|
-
loadSave = 2;
|
|
208
|
-
{
|
|
209
|
-
saves++;
|
|
210
|
-
}
|
|
211
|
-
await persister.schedule(async () => {
|
|
212
|
-
try {
|
|
213
|
-
await setPersisted(getContent, getChanges2);
|
|
214
|
-
} catch (error) {
|
|
215
|
-
/* istanbul ignore next */
|
|
216
|
-
onIgnoredError?.(error);
|
|
171
|
+
loadSave = 0;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return persister;
|
|
175
|
+
};
|
|
176
|
+
const startAutoLoad = async (initialContent) => {
|
|
177
|
+
await stopAutoLoad().load(initialContent);
|
|
178
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
179
|
+
if (changes || content) {
|
|
180
|
+
/* istanbul ignore else */
|
|
181
|
+
if (loadSave != 2) {
|
|
182
|
+
loadSave = 1;
|
|
183
|
+
{
|
|
184
|
+
loads++;
|
|
217
185
|
}
|
|
186
|
+
setContentOrChanges(changes ?? content);
|
|
218
187
|
loadSave = 0;
|
|
219
|
-
}
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
await load();
|
|
220
191
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
192
|
+
});
|
|
193
|
+
return persister;
|
|
194
|
+
};
|
|
195
|
+
const stopAutoLoad = () => {
|
|
196
|
+
if (autoLoadHandle) {
|
|
197
|
+
delPersisterListener(autoLoadHandle);
|
|
198
|
+
autoLoadHandle = void 0;
|
|
199
|
+
}
|
|
200
|
+
return persister;
|
|
201
|
+
};
|
|
202
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
203
|
+
const save = async (changes) => {
|
|
204
|
+
/* istanbul ignore else */
|
|
205
|
+
if (loadSave != 1) {
|
|
206
|
+
loadSave = 2;
|
|
207
|
+
{
|
|
208
|
+
saves++;
|
|
209
|
+
}
|
|
210
|
+
await schedule(async () => {
|
|
211
|
+
try {
|
|
212
|
+
await setPersisted(getContent, changes);
|
|
213
|
+
} catch (error) {
|
|
214
|
+
/* istanbul ignore next */
|
|
215
|
+
onIgnoredError?.(error);
|
|
229
216
|
}
|
|
217
|
+
loadSave = 0;
|
|
230
218
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
219
|
+
}
|
|
220
|
+
return persister;
|
|
221
|
+
};
|
|
222
|
+
const startAutoSave = async () => {
|
|
223
|
+
await stopAutoSave().save();
|
|
224
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
225
|
+
const changes = getChanges();
|
|
226
|
+
if (hasChanges(changes)) {
|
|
227
|
+
save(changes);
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
return persister;
|
|
231
|
+
};
|
|
232
|
+
const stopAutoSave = () => {
|
|
233
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
234
|
+
autoSaveListenerId = void 0;
|
|
235
|
+
return persister;
|
|
236
|
+
};
|
|
237
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
238
|
+
const schedule = async (...actions) => {
|
|
239
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
240
|
+
await run();
|
|
241
|
+
return persister;
|
|
242
|
+
};
|
|
243
|
+
const getStore = () => store;
|
|
244
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
245
|
+
const getStats = () => ({loads, saves});
|
|
246
|
+
const persister = {
|
|
247
|
+
load,
|
|
248
|
+
startAutoLoad,
|
|
249
|
+
stopAutoLoad,
|
|
250
|
+
isAutoLoading,
|
|
251
|
+
save,
|
|
252
|
+
startAutoSave,
|
|
253
|
+
stopAutoSave,
|
|
254
|
+
isAutoSaving,
|
|
255
|
+
schedule,
|
|
256
|
+
getStore,
|
|
257
|
+
destroy,
|
|
258
|
+
getStats,
|
|
247
259
|
...extra,
|
|
248
260
|
};
|
|
249
261
|
return objFreeze(persister);
|
|
@@ -359,10 +371,10 @@ const createCustomSynchronizer = (
|
|
|
359
371
|
);
|
|
360
372
|
} else if (messageType == CONTENT_HASHES && persister.isAutoLoading()) {
|
|
361
373
|
getChangesFromOtherStore(fromClientId, messageBody).then((changes) => {
|
|
362
|
-
persisterListener?.(void 0,
|
|
374
|
+
persisterListener?.(void 0, changes);
|
|
363
375
|
});
|
|
364
376
|
} else if (messageType == CONTENT_DIFF && persister.isAutoLoading()) {
|
|
365
|
-
persisterListener?.(void 0,
|
|
377
|
+
persisterListener?.(void 0, messageBody);
|
|
366
378
|
} else {
|
|
367
379
|
ifNotUndefined(
|
|
368
380
|
messageType == GET_CONTENT_HASHES && persister.isAutoSaving()
|
|
@@ -486,12 +498,12 @@ const createCustomSynchronizer = (
|
|
|
486
498
|
? changes
|
|
487
499
|
: void 0;
|
|
488
500
|
};
|
|
489
|
-
const setPersisted = async (
|
|
501
|
+
const setPersisted = async (_getContent, changes) => {
|
|
490
502
|
{
|
|
491
503
|
sends++;
|
|
492
504
|
}
|
|
493
|
-
if (
|
|
494
|
-
send(null, null, CONTENT_DIFF,
|
|
505
|
+
if (changes) {
|
|
506
|
+
send(null, null, CONTENT_DIFF, changes);
|
|
495
507
|
} else {
|
|
496
508
|
send(null, null, CONTENT_HASHES, store.getMergeableContentHashes());
|
|
497
509
|
}
|
|
@@ -513,7 +525,7 @@ const createCustomSynchronizer = (
|
|
|
513
525
|
addPersisterListener,
|
|
514
526
|
delPersisterListener,
|
|
515
527
|
onIgnoredError,
|
|
516
|
-
|
|
528
|
+
2,
|
|
517
529
|
{startSync, stopSync, destroy, getSynchronizerStats, ...extra},
|
|
518
530
|
);
|
|
519
531
|
return persister;
|
|
@@ -551,7 +563,7 @@ const createLocalSynchronizer = (store, onIgnoredError) => {
|
|
|
551
563
|
send,
|
|
552
564
|
onReceive,
|
|
553
565
|
destroy,
|
|
554
|
-
0.
|
|
566
|
+
0.01,
|
|
555
567
|
onIgnoredError,
|
|
556
568
|
);
|
|
557
569
|
};
|
|
@@ -90,24 +90,27 @@ const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
|
|
|
90
90
|
|
|
91
91
|
const scheduleRunning = mapNew();
|
|
92
92
|
const scheduleActions = mapNew();
|
|
93
|
-
const getStoreFunctions = (
|
|
94
|
-
|
|
93
|
+
const getStoreFunctions = (supportedStoreType = 1, store) =>
|
|
94
|
+
supportedStoreType > 1 && 'getMergeableContent' in store
|
|
95
95
|
? [
|
|
96
|
-
0,
|
|
97
|
-
store.getContent,
|
|
98
|
-
store.getTransactionChanges,
|
|
99
|
-
([changedTables, changedValues]) =>
|
|
100
|
-
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
101
|
-
store.setContent,
|
|
102
|
-
]
|
|
103
|
-
: [
|
|
104
96
|
1,
|
|
105
97
|
store.getMergeableContent,
|
|
106
98
|
store.getTransactionMergeableChanges,
|
|
107
99
|
([[changedTables], [changedValues]]) =>
|
|
108
100
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
109
101
|
store.setDefaultContent,
|
|
110
|
-
]
|
|
102
|
+
]
|
|
103
|
+
: supportedStoreType != 2
|
|
104
|
+
? [
|
|
105
|
+
0,
|
|
106
|
+
store.getContent,
|
|
107
|
+
store.getTransactionChanges,
|
|
108
|
+
([changedTables, changedValues]) =>
|
|
109
|
+
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
110
|
+
store.setContent,
|
|
111
|
+
]
|
|
112
|
+
: /* istanbul ignore next */
|
|
113
|
+
0;
|
|
111
114
|
const createCustomPersister = (
|
|
112
115
|
store,
|
|
113
116
|
getPersisted,
|
|
@@ -115,7 +118,7 @@ const createCustomPersister = (
|
|
|
115
118
|
addPersisterListener,
|
|
116
119
|
delPersisterListener,
|
|
117
120
|
onIgnoredError,
|
|
118
|
-
|
|
121
|
+
supportedStoreType,
|
|
119
122
|
extra = {},
|
|
120
123
|
scheduleId = [],
|
|
121
124
|
) => {
|
|
@@ -133,7 +136,7 @@ const createCustomPersister = (
|
|
|
133
136
|
getChanges,
|
|
134
137
|
hasChanges,
|
|
135
138
|
setDefaultContent,
|
|
136
|
-
] = getStoreFunctions(
|
|
139
|
+
] = getStoreFunctions(supportedStoreType, store);
|
|
137
140
|
const run = async () => {
|
|
138
141
|
/* istanbul ignore else */
|
|
139
142
|
if (!mapGet(scheduleRunning, scheduleId)) {
|
|
@@ -151,20 +154,6 @@ const createCustomPersister = (
|
|
|
151
154
|
mapSet(scheduleRunning, scheduleId, 0);
|
|
152
155
|
}
|
|
153
156
|
};
|
|
154
|
-
const loadLock = async (actions) => {
|
|
155
|
-
/* istanbul ignore else */
|
|
156
|
-
if (loadSave != 2) {
|
|
157
|
-
loadSave = 1;
|
|
158
|
-
{
|
|
159
|
-
loads++;
|
|
160
|
-
}
|
|
161
|
-
await persister.schedule(async () => {
|
|
162
|
-
await actions();
|
|
163
|
-
loadSave = 0;
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
return persister;
|
|
167
|
-
};
|
|
168
157
|
const setContentOrChanges = (contentOrChanges) => {
|
|
169
158
|
(isMergeableStore && isArray(contentOrChanges?.[0])
|
|
170
159
|
? contentOrChanges?.[2] === 1
|
|
@@ -174,9 +163,14 @@ const createCustomPersister = (
|
|
|
174
163
|
? store.applyChanges
|
|
175
164
|
: store.setContent)(contentOrChanges);
|
|
176
165
|
};
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
166
|
+
const load = async (initialContent) => {
|
|
167
|
+
/* istanbul ignore else */
|
|
168
|
+
if (loadSave != 2) {
|
|
169
|
+
loadSave = 1;
|
|
170
|
+
{
|
|
171
|
+
loads++;
|
|
172
|
+
}
|
|
173
|
+
await schedule(async () => {
|
|
180
174
|
try {
|
|
181
175
|
setContentOrChanges(await getPersisted());
|
|
182
176
|
} catch (error) {
|
|
@@ -185,76 +179,94 @@ const createCustomPersister = (
|
|
|
185
179
|
setDefaultContent(initialContent);
|
|
186
180
|
}
|
|
187
181
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
});
|
|
203
|
-
},
|
|
204
|
-
);
|
|
205
|
-
return persister;
|
|
206
|
-
},
|
|
207
|
-
stopAutoLoad: () => {
|
|
208
|
-
if (autoLoadHandle) {
|
|
209
|
-
delPersisterListener(autoLoadHandle);
|
|
210
|
-
autoLoadHandle = void 0;
|
|
211
|
-
}
|
|
212
|
-
return persister;
|
|
213
|
-
},
|
|
214
|
-
isAutoLoading: () => !isUndefined(autoLoadHandle),
|
|
215
|
-
save: async (getChanges2) => {
|
|
216
|
-
/* istanbul ignore else */
|
|
217
|
-
if (loadSave != 1) {
|
|
218
|
-
loadSave = 2;
|
|
219
|
-
{
|
|
220
|
-
saves++;
|
|
221
|
-
}
|
|
222
|
-
await persister.schedule(async () => {
|
|
223
|
-
try {
|
|
224
|
-
await setPersisted(getContent, getChanges2);
|
|
225
|
-
} catch (error) {
|
|
226
|
-
/* istanbul ignore next */
|
|
227
|
-
onIgnoredError?.(error);
|
|
182
|
+
loadSave = 0;
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return persister;
|
|
186
|
+
};
|
|
187
|
+
const startAutoLoad = async (initialContent) => {
|
|
188
|
+
await stopAutoLoad().load(initialContent);
|
|
189
|
+
autoLoadHandle = addPersisterListener(async (content, changes) => {
|
|
190
|
+
if (changes || content) {
|
|
191
|
+
/* istanbul ignore else */
|
|
192
|
+
if (loadSave != 2) {
|
|
193
|
+
loadSave = 1;
|
|
194
|
+
{
|
|
195
|
+
loads++;
|
|
228
196
|
}
|
|
197
|
+
setContentOrChanges(changes ?? content);
|
|
229
198
|
loadSave = 0;
|
|
230
|
-
}
|
|
199
|
+
}
|
|
200
|
+
} else {
|
|
201
|
+
await load();
|
|
231
202
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
203
|
+
});
|
|
204
|
+
return persister;
|
|
205
|
+
};
|
|
206
|
+
const stopAutoLoad = () => {
|
|
207
|
+
if (autoLoadHandle) {
|
|
208
|
+
delPersisterListener(autoLoadHandle);
|
|
209
|
+
autoLoadHandle = void 0;
|
|
210
|
+
}
|
|
211
|
+
return persister;
|
|
212
|
+
};
|
|
213
|
+
const isAutoLoading = () => !isUndefined(autoLoadHandle);
|
|
214
|
+
const save = async (changes) => {
|
|
215
|
+
/* istanbul ignore else */
|
|
216
|
+
if (loadSave != 1) {
|
|
217
|
+
loadSave = 2;
|
|
218
|
+
{
|
|
219
|
+
saves++;
|
|
220
|
+
}
|
|
221
|
+
await schedule(async () => {
|
|
222
|
+
try {
|
|
223
|
+
await setPersisted(getContent, changes);
|
|
224
|
+
} catch (error) {
|
|
225
|
+
/* istanbul ignore next */
|
|
226
|
+
onIgnoredError?.(error);
|
|
240
227
|
}
|
|
228
|
+
loadSave = 0;
|
|
241
229
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
230
|
+
}
|
|
231
|
+
return persister;
|
|
232
|
+
};
|
|
233
|
+
const startAutoSave = async () => {
|
|
234
|
+
await stopAutoSave().save();
|
|
235
|
+
autoSaveListenerId = store.addDidFinishTransactionListener(() => {
|
|
236
|
+
const changes = getChanges();
|
|
237
|
+
if (hasChanges(changes)) {
|
|
238
|
+
save(changes);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
return persister;
|
|
242
|
+
};
|
|
243
|
+
const stopAutoSave = () => {
|
|
244
|
+
ifNotUndefined(autoSaveListenerId, store.delListener);
|
|
245
|
+
autoSaveListenerId = void 0;
|
|
246
|
+
return persister;
|
|
247
|
+
};
|
|
248
|
+
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
249
|
+
const schedule = async (...actions) => {
|
|
250
|
+
arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
|
|
251
|
+
await run();
|
|
252
|
+
return persister;
|
|
253
|
+
};
|
|
254
|
+
const getStore = () => store;
|
|
255
|
+
const destroy = () => stopAutoLoad().stopAutoSave();
|
|
256
|
+
const getStats = () => ({loads, saves});
|
|
257
|
+
const persister = {
|
|
258
|
+
load,
|
|
259
|
+
startAutoLoad,
|
|
260
|
+
stopAutoLoad,
|
|
261
|
+
isAutoLoading,
|
|
262
|
+
save,
|
|
263
|
+
startAutoSave,
|
|
264
|
+
stopAutoSave,
|
|
265
|
+
isAutoSaving,
|
|
266
|
+
schedule,
|
|
267
|
+
getStore,
|
|
268
|
+
destroy,
|
|
269
|
+
getStats,
|
|
258
270
|
...extra,
|
|
259
271
|
};
|
|
260
272
|
return objFreeze(persister);
|
|
@@ -370,10 +382,10 @@ const createCustomSynchronizer = (
|
|
|
370
382
|
);
|
|
371
383
|
} else if (messageType == CONTENT_HASHES && persister.isAutoLoading()) {
|
|
372
384
|
getChangesFromOtherStore(fromClientId, messageBody).then((changes) => {
|
|
373
|
-
persisterListener?.(void 0,
|
|
385
|
+
persisterListener?.(void 0, changes);
|
|
374
386
|
});
|
|
375
387
|
} else if (messageType == CONTENT_DIFF && persister.isAutoLoading()) {
|
|
376
|
-
persisterListener?.(void 0,
|
|
388
|
+
persisterListener?.(void 0, messageBody);
|
|
377
389
|
} else {
|
|
378
390
|
ifNotUndefined(
|
|
379
391
|
messageType == GET_CONTENT_HASHES && persister.isAutoSaving()
|
|
@@ -497,12 +509,12 @@ const createCustomSynchronizer = (
|
|
|
497
509
|
? changes
|
|
498
510
|
: void 0;
|
|
499
511
|
};
|
|
500
|
-
const setPersisted = async (
|
|
512
|
+
const setPersisted = async (_getContent, changes) => {
|
|
501
513
|
{
|
|
502
514
|
sends++;
|
|
503
515
|
}
|
|
504
|
-
if (
|
|
505
|
-
send(null, null, CONTENT_DIFF,
|
|
516
|
+
if (changes) {
|
|
517
|
+
send(null, null, CONTENT_DIFF, changes);
|
|
506
518
|
} else {
|
|
507
519
|
send(null, null, CONTENT_HASHES, store.getMergeableContentHashes());
|
|
508
520
|
}
|
|
@@ -524,7 +536,7 @@ const createCustomSynchronizer = (
|
|
|
524
536
|
addPersisterListener,
|
|
525
537
|
delPersisterListener,
|
|
526
538
|
onIgnoredError,
|
|
527
|
-
|
|
539
|
+
2,
|
|
528
540
|
{startSync, stopSync, destroy, getSynchronizerStats, ...extra},
|
|
529
541
|
);
|
|
530
542
|
return persister;
|