tinybase 5.0.0-beta.1 → 5.0.0-beta.3
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 -0
- 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-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-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/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/mergeable-store.cjs +1 -0
- 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-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-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/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/debug/mergeable-store.js +1863 -0
- package/lib/debug/persisters/persister-automerge.js +54 -53
- package/lib/debug/persisters/persister-browser.js +28 -18
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +80 -57
- package/lib/debug/persisters/persister-electric-sql.js +80 -57
- package/lib/debug/persisters/persister-expo-sqlite-next.js +80 -57
- package/lib/debug/persisters/persister-expo-sqlite.js +80 -57
- package/lib/debug/persisters/persister-file.js +27 -18
- package/lib/debug/persisters/persister-indexed-db.js +34 -23
- package/lib/debug/persisters/persister-partykit-client.js +26 -23
- package/lib/debug/persisters/persister-partykit-server.js +11 -21
- package/lib/debug/persisters/persister-remote.js +28 -18
- package/lib/debug/persisters/persister-sqlite-wasm.js +80 -57
- package/lib/debug/persisters/persister-sqlite3.js +80 -57
- package/lib/debug/persisters/persister-yjs.js +50 -48
- package/lib/debug/persisters.js +27 -18
- package/lib/debug/queries.js +2 -2
- package/lib/debug/store.js +63 -71
- package/lib/debug/tinybase.js +354 -90
- package/lib/debug/tools.js +13 -15
- package/lib/debug/ui-react-dom.js +115 -119
- package/lib/es6/mergeable-store.js +1 -0
- 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-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-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/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/mergeable-store.js +1 -0
- 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-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-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/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/mergeable-store.d.ts +79 -0
- package/lib/types/persisters/persister-automerge.d.ts +8 -7
- package/lib/types/persisters/persister-browser.d.ts +2 -0
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
- package/lib/types/persisters/persister-electric-sql.d.ts +1 -0
- package/lib/types/persisters/persister-expo-sqlite-next.d.ts +1 -0
- package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -0
- package/lib/types/persisters/persister-file.d.ts +1 -0
- package/lib/types/persisters/persister-indexed-db.d.ts +1 -0
- package/lib/types/persisters/persister-partykit-client.d.ts +1 -0
- package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
- package/lib/types/persisters/persister-remote.d.ts +1 -0
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -0
- package/lib/types/persisters/persister-sqlite3.d.ts +1 -0
- package/lib/types/persisters/persister-yjs.d.ts +1 -0
- package/lib/types/persisters.d.ts +50 -30
- package/lib/types/store.d.ts +241 -186
- package/lib/types/tinybase.d.ts +1 -0
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/ui-react.d.ts +1 -0
- package/lib/types/with-schemas/internal/store.d.ts +4 -0
- package/lib/types/with-schemas/mergeable-store.d.ts +112 -0
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +8 -7
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -0
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -0
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +1 -0
- package/lib/types/with-schemas/persisters.d.ts +81 -45
- package/lib/types/with-schemas/store.d.ts +364 -273
- package/lib/types/with-schemas/tinybase.d.ts +1 -0
- package/lib/types/with-schemas/tools.d.ts +2 -2
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/umd/mergeable-store.js +1 -0
- 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-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-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/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/mergeable-store.js +1 -0
- 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-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-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/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/package.json +39 -35
- package/readme.md +2 -2
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
* @module persisters
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
|
-
import {
|
|
41
|
+
import {Changes, Content, Store, Tables, Values} from './store.d';
|
|
42
|
+
import {MergeableContent, MergeableStore} from './mergeable-store';
|
|
42
43
|
import {Id} from './common.d';
|
|
43
44
|
|
|
44
45
|
/**
|
|
@@ -64,22 +65,21 @@ export type PersisterStats = {
|
|
|
64
65
|
* A PersisterListener is a callback that lets a Persister inform the Store that
|
|
65
66
|
* a change has happened to the underlying data.
|
|
66
67
|
*
|
|
67
|
-
* If the listener has the `
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
68
|
+
* If the listener has the `getChanges` parameter, it will be used to make an
|
|
69
|
+
* incremental change to the Store. If not, but the `getContent` function _is_
|
|
70
|
+
* available, that will be used to make a wholesale change to the Store. If
|
|
71
|
+
* neither are present, the content will be loaded from the Persister's load
|
|
72
|
+
* method.
|
|
72
73
|
* @param getContent An optional function that, if provided, returns an array of
|
|
73
74
|
* Store content and can be used to immediately wholesale update the Store.
|
|
74
|
-
* @param
|
|
75
|
-
*
|
|
76
|
-
* update the Store.
|
|
75
|
+
* @param getChanges An optional function that, if provided, returns a Changes
|
|
76
|
+
* object and can be used to immediately incrementally update the Store.
|
|
77
77
|
* @category Creation
|
|
78
78
|
* @since v4.0.0
|
|
79
79
|
*/
|
|
80
80
|
export type PersisterListener = (
|
|
81
|
-
getContent?: () =>
|
|
82
|
-
|
|
81
|
+
getContent?: () => Content,
|
|
82
|
+
getChanges?: () => Changes,
|
|
83
83
|
) => void;
|
|
84
84
|
|
|
85
85
|
/**
|
|
@@ -548,9 +548,9 @@ export type DpcTabularValues = {
|
|
|
548
548
|
*
|
|
549
549
|
* Creating a Persister depends on the choice of underlying storage where the
|
|
550
550
|
* data is to be stored. Options include the createSessionPersister function,
|
|
551
|
-
* the createLocalPersister, the createRemotePersister function, and
|
|
552
|
-
* createFilePersister function. The createCustomPersister function can also
|
|
553
|
-
* used to easily create a fully customized way to save and load Store data.
|
|
551
|
+
* the createLocalPersister function, the createRemotePersister function, and
|
|
552
|
+
* the createFilePersister function. The createCustomPersister function can also
|
|
553
|
+
* be used to easily create a fully customized way to save and load Store data.
|
|
554
554
|
*
|
|
555
555
|
* A Persister lets you explicit save or load data, with the save method and the
|
|
556
556
|
* load method respectively. These methods are both asynchronous (since the
|
|
@@ -640,7 +640,7 @@ export type DpcTabularValues = {
|
|
|
640
640
|
* ```
|
|
641
641
|
* @category Persister
|
|
642
642
|
*/
|
|
643
|
-
export interface Persister {
|
|
643
|
+
export interface Persister<SupportsMergeableStore extends boolean = false> {
|
|
644
644
|
//
|
|
645
645
|
/**
|
|
646
646
|
* The load method gets persisted data from storage, and loads it into the
|
|
@@ -701,7 +701,10 @@ export interface Persister {
|
|
|
701
701
|
* ```
|
|
702
702
|
* @category Load
|
|
703
703
|
*/
|
|
704
|
-
load(
|
|
704
|
+
load(
|
|
705
|
+
initialTables?: Tables,
|
|
706
|
+
initialValues?: Values,
|
|
707
|
+
): Promise<Persister<SupportsMergeableStore>>;
|
|
705
708
|
|
|
706
709
|
/**
|
|
707
710
|
* The startAutoLoad method gets persisted data from storage, and loads it
|
|
@@ -759,7 +762,7 @@ export interface Persister {
|
|
|
759
762
|
startAutoLoad(
|
|
760
763
|
initialTables?: Tables,
|
|
761
764
|
initialValues?: Values,
|
|
762
|
-
): Promise<Persister
|
|
765
|
+
): Promise<Persister<SupportsMergeableStore>>;
|
|
763
766
|
|
|
764
767
|
/**
|
|
765
768
|
* The stopAutoLoad method stops the automatic loading of data from storage
|
|
@@ -803,7 +806,7 @@ export interface Persister {
|
|
|
803
806
|
* ```
|
|
804
807
|
* @category Load
|
|
805
808
|
*/
|
|
806
|
-
stopAutoLoad(): Persister
|
|
809
|
+
stopAutoLoad(): Persister<SupportsMergeableStore>;
|
|
807
810
|
|
|
808
811
|
/**
|
|
809
812
|
* The save method takes data from the Store with which the Persister is
|
|
@@ -831,7 +834,7 @@ export interface Persister {
|
|
|
831
834
|
* ```
|
|
832
835
|
* @category Save
|
|
833
836
|
*/
|
|
834
|
-
save(): Promise<Persister
|
|
837
|
+
save(): Promise<Persister<SupportsMergeableStore>>;
|
|
835
838
|
|
|
836
839
|
/**
|
|
837
840
|
* The save method takes data from the Store with which the Persister is
|
|
@@ -868,7 +871,7 @@ export interface Persister {
|
|
|
868
871
|
* ```
|
|
869
872
|
* @category Save
|
|
870
873
|
*/
|
|
871
|
-
startAutoSave(): Promise<Persister
|
|
874
|
+
startAutoSave(): Promise<Persister<SupportsMergeableStore>>;
|
|
872
875
|
|
|
873
876
|
/**
|
|
874
877
|
* The stopAutoSave method stops the automatic save of data to storage
|
|
@@ -905,7 +908,7 @@ export interface Persister {
|
|
|
905
908
|
* ```
|
|
906
909
|
* @category Save
|
|
907
910
|
*/
|
|
908
|
-
stopAutoSave(): Persister
|
|
911
|
+
stopAutoSave(): Persister<SupportsMergeableStore>;
|
|
909
912
|
|
|
910
913
|
/**
|
|
911
914
|
* The schedule method allows you to queue up a series of asynchronous actions
|
|
@@ -948,7 +951,9 @@ export interface Persister {
|
|
|
948
951
|
* @category Lifecycle
|
|
949
952
|
* @since v4.0.0
|
|
950
953
|
*/
|
|
951
|
-
schedule(
|
|
954
|
+
schedule(
|
|
955
|
+
...actions: Promise<any>[]
|
|
956
|
+
): Promise<Persister<SupportsMergeableStore>>;
|
|
952
957
|
|
|
953
958
|
/**
|
|
954
959
|
* The getStore method returns a reference to the underlying Store that is
|
|
@@ -971,7 +976,9 @@ export interface Persister {
|
|
|
971
976
|
* ```
|
|
972
977
|
* @category Getter
|
|
973
978
|
*/
|
|
974
|
-
getStore():
|
|
979
|
+
getStore(): SupportsMergeableStore extends true
|
|
980
|
+
? Store | MergeableStore
|
|
981
|
+
: Store;
|
|
975
982
|
|
|
976
983
|
/**
|
|
977
984
|
* The destroy method should be called when this Persister object is no longer
|
|
@@ -1001,7 +1008,7 @@ export interface Persister {
|
|
|
1001
1008
|
* ```
|
|
1002
1009
|
* @category Lifecycle
|
|
1003
1010
|
*/
|
|
1004
|
-
destroy(): Persister
|
|
1011
|
+
destroy(): Persister<SupportsMergeableStore>;
|
|
1005
1012
|
|
|
1006
1013
|
/**
|
|
1007
1014
|
* The getStats method provides a set of statistics about the Persister, and
|
|
@@ -1086,6 +1093,9 @@ export interface Persister {
|
|
|
1086
1093
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
1087
1094
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
1088
1095
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
1096
|
+
* @param supportsMergeableStore An optional boolean to indicate that this
|
|
1097
|
+
* Persister will be able to handle MergeableStore persistence as well as
|
|
1098
|
+
* regular Store persistence, since v5.0.
|
|
1089
1099
|
* @returns A reference to the new Persister object.
|
|
1090
1100
|
* @example
|
|
1091
1101
|
* This example creates a custom Persister object and persists the Store to a
|
|
@@ -1124,14 +1134,24 @@ export interface Persister {
|
|
|
1124
1134
|
* ```
|
|
1125
1135
|
* @category Creation
|
|
1126
1136
|
*/
|
|
1127
|
-
export function createCustomPersister<
|
|
1128
|
-
|
|
1129
|
-
|
|
1137
|
+
export function createCustomPersister<
|
|
1138
|
+
ListeningHandle,
|
|
1139
|
+
SupportsMergeableStore extends boolean,
|
|
1140
|
+
>(
|
|
1141
|
+
store: Store | (SupportsMergeableStore extends true ? MergeableStore : never),
|
|
1142
|
+
getPersisted: () => Promise<
|
|
1143
|
+
| Content
|
|
1144
|
+
| (SupportsMergeableStore extends true ? MergeableContent : never)
|
|
1145
|
+
| undefined
|
|
1146
|
+
>,
|
|
1130
1147
|
setPersisted: (
|
|
1131
|
-
getContent: () =>
|
|
1132
|
-
|
|
1148
|
+
getContent: () =>
|
|
1149
|
+
| Content
|
|
1150
|
+
| (SupportsMergeableStore extends true ? MergeableContent : never),
|
|
1151
|
+
getChanges?: () => Changes,
|
|
1133
1152
|
) => Promise<void>,
|
|
1134
1153
|
addPersisterListener: (listener: PersisterListener) => ListeningHandle,
|
|
1135
1154
|
delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1136
1155
|
onIgnoredError?: (error: any) => void,
|
|
1137
|
-
|
|
1156
|
+
supportsMergeableStore?: SupportsMergeableStore,
|
|
1157
|
+
): Persister<SupportsMergeableStore>;
|