tinybase 5.0.0-beta.2 → 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 -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-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-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-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/debug/mergeable-store.js +158 -187
- package/lib/debug/persisters/persister-automerge.js +42 -43
- package/lib/debug/persisters/persister-browser.js +28 -18
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +77 -54
- package/lib/debug/persisters/persister-electric-sql.js +77 -54
- package/lib/debug/persisters/persister-expo-sqlite-next.js +77 -54
- package/lib/debug/persisters/persister-expo-sqlite.js +77 -54
- package/lib/debug/persisters/persister-file.js +27 -18
- package/lib/debug/persisters/persister-indexed-db.js +28 -20
- package/lib/debug/persisters/persister-partykit-client.js +26 -23
- package/lib/debug/persisters/persister-partykit-server.js +8 -18
- package/lib/debug/persisters/persister-remote.js +28 -18
- package/lib/debug/persisters/persister-sqlite-wasm.js +77 -54
- package/lib/debug/persisters/persister-sqlite3.js +77 -54
- package/lib/debug/persisters/persister-yjs.js +44 -42
- package/lib/debug/persisters.js +27 -18
- package/lib/debug/store.js +50 -68
- package/lib/debug/tinybase.js +180 -205
- package/lib/debug/tools.js +9 -11
- package/lib/debug/ui-react-dom.js +73 -86
- 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-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/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-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 +37 -13
- package/lib/types/persisters/persister-partykit-server.d.ts +7 -8
- package/lib/types/persisters.d.ts +47 -27
- package/lib/types/store.d.ts +153 -111
- package/lib/types/tools.d.ts +2 -2
- package/lib/types/with-schemas/mergeable-store.d.ts +40 -13
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +10 -11
- package/lib/types/with-schemas/persisters.d.ts +78 -42
- package/lib/types/with-schemas/store.d.ts +165 -136
- package/lib/types/with-schemas/tools.d.ts +2 -2
- 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-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-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-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/package.json +26 -22
- package/readme.md +2 -2
|
@@ -39,13 +39,15 @@
|
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
41
|
import {
|
|
42
|
-
|
|
42
|
+
Changes,
|
|
43
|
+
Content,
|
|
43
44
|
OptionalSchemas,
|
|
44
45
|
OptionalTablesSchema,
|
|
45
46
|
Store,
|
|
46
47
|
Tables,
|
|
47
48
|
Values,
|
|
48
49
|
} from './store.d';
|
|
50
|
+
import {MergeableContent, MergeableStore} from './mergeable-store';
|
|
49
51
|
import {TableIdFromSchema} from './internal/store';
|
|
50
52
|
|
|
51
53
|
/**
|
|
@@ -75,27 +77,26 @@ export type PersisterStats = {
|
|
|
75
77
|
*
|
|
76
78
|
* ```ts override
|
|
77
79
|
* (
|
|
78
|
-
* getContent?: () =>
|
|
79
|
-
*
|
|
80
|
+
* getContent?: () => Content,
|
|
81
|
+
* getChanges?: () => Changes,
|
|
80
82
|
* ) => void;
|
|
81
83
|
* ```
|
|
82
84
|
*
|
|
83
|
-
* If the listener has the `
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
85
|
+
* If the listener has the `getChanges` parameter, it will be used to make an
|
|
86
|
+
* incremental change to the Store. If not, but the `getContent` function _is_
|
|
87
|
+
* available, that will be used to make a wholesale change to the Store. If
|
|
88
|
+
* neither are present, the content will be loaded from the Persister's load
|
|
89
|
+
* method.
|
|
88
90
|
* @param getContent An optional function that, if provided, returns an array of
|
|
89
91
|
* Store content and can be used to immediately wholesale update the Store.
|
|
90
|
-
* @param
|
|
91
|
-
*
|
|
92
|
-
* update the Store.
|
|
92
|
+
* @param getChanges An optional function that, if provided, returns a Changes
|
|
93
|
+
* object and can be used to immediately incrementally update the Store.
|
|
93
94
|
* @category Creation
|
|
94
95
|
* @since v4.0.0
|
|
95
96
|
*/
|
|
96
97
|
export type PersisterListener<Schemas extends OptionalSchemas> = (
|
|
97
|
-
getContent?: () =>
|
|
98
|
-
|
|
98
|
+
getContent?: () => Content<Schemas, true>,
|
|
99
|
+
getChanges?: () => Changes<Schemas>,
|
|
99
100
|
) => void;
|
|
100
101
|
|
|
101
102
|
/**
|
|
@@ -664,7 +665,10 @@ export type DpcTabularValues = {
|
|
|
664
665
|
* ```
|
|
665
666
|
* @category Persister
|
|
666
667
|
*/
|
|
667
|
-
export interface Persister<
|
|
668
|
+
export interface Persister<
|
|
669
|
+
in out Schemas extends OptionalSchemas,
|
|
670
|
+
SupportsMergeableStore extends boolean = false,
|
|
671
|
+
> {
|
|
668
672
|
/**
|
|
669
673
|
* The load method gets persisted data from storage, and loads it into the
|
|
670
674
|
* Store with which the Persister is associated, once.
|
|
@@ -672,7 +676,10 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
672
676
|
* This has schema-based typing. The following is a simplified representation:
|
|
673
677
|
*
|
|
674
678
|
* ```ts override
|
|
675
|
-
* load(
|
|
679
|
+
* load(
|
|
680
|
+
* initialTables?: Tables,
|
|
681
|
+
* initialValues?: Values,
|
|
682
|
+
* ): Promise<Persister<SupportsMergeableStore>>;
|
|
676
683
|
* ```
|
|
677
684
|
*
|
|
678
685
|
* The optional parameters allow you to specify what the initial content for
|
|
@@ -733,7 +740,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
733
740
|
load(
|
|
734
741
|
initialTables?: Tables<Schemas[0], true>,
|
|
735
742
|
initialValues?: Values<Schemas[1], true>,
|
|
736
|
-
): Promise<Persister<Schemas>>;
|
|
743
|
+
): Promise<Persister<Schemas, SupportsMergeableStore>>;
|
|
737
744
|
|
|
738
745
|
/**
|
|
739
746
|
* The startAutoLoad method gets persisted data from storage, and loads it
|
|
@@ -746,7 +753,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
746
753
|
* startAutoLoad(
|
|
747
754
|
* initialTables?: Tables,
|
|
748
755
|
* initialValues?: Values,
|
|
749
|
-
* ): Promise<Persister
|
|
756
|
+
* ): Promise<Persister<SupportsMergeableStore>>;
|
|
750
757
|
* ```
|
|
751
758
|
*
|
|
752
759
|
* The optional parameters allow you to specify what the initial content for
|
|
@@ -800,7 +807,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
800
807
|
startAutoLoad(
|
|
801
808
|
initialTables?: Tables<Schemas[0], true>,
|
|
802
809
|
initialValues?: Values<Schemas[1], true>,
|
|
803
|
-
): Promise<Persister<Schemas>>;
|
|
810
|
+
): Promise<Persister<Schemas, SupportsMergeableStore>>;
|
|
804
811
|
|
|
805
812
|
/**
|
|
806
813
|
* The stopAutoLoad method stops the automatic loading of data from storage
|
|
@@ -809,7 +816,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
809
816
|
* This has schema-based typing. The following is a simplified representation:
|
|
810
817
|
*
|
|
811
818
|
* ```ts override
|
|
812
|
-
* stopAutoLoad(): Persister
|
|
819
|
+
* stopAutoLoad(): Persister<SupportsMergeableStore>;
|
|
813
820
|
* ```
|
|
814
821
|
*
|
|
815
822
|
* If the Persister is not currently set to automatically load, this method
|
|
@@ -850,7 +857,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
850
857
|
* ```
|
|
851
858
|
* @category Load
|
|
852
859
|
*/
|
|
853
|
-
stopAutoLoad(): Persister<Schemas>;
|
|
860
|
+
stopAutoLoad(): Persister<Schemas, SupportsMergeableStore>;
|
|
854
861
|
|
|
855
862
|
/**
|
|
856
863
|
* The save method takes data from the Store with which the Persister is
|
|
@@ -859,7 +866,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
859
866
|
* This has schema-based typing. The following is a simplified representation:
|
|
860
867
|
*
|
|
861
868
|
* ```ts override
|
|
862
|
-
* save(): Promise<Persister
|
|
869
|
+
* save(): Promise<Persister<SupportsMergeableStore>>;
|
|
863
870
|
* ```
|
|
864
871
|
*
|
|
865
872
|
* This method is asynchronous because the persisted data may be on a remote
|
|
@@ -884,7 +891,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
884
891
|
* ```
|
|
885
892
|
* @category Save
|
|
886
893
|
*/
|
|
887
|
-
save(): Promise<Persister<Schemas>>;
|
|
894
|
+
save(): Promise<Persister<Schemas, SupportsMergeableStore>>;
|
|
888
895
|
|
|
889
896
|
/**
|
|
890
897
|
* The save method takes data from the Store with which the Persister is
|
|
@@ -893,7 +900,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
893
900
|
* This has schema-based typing. The following is a simplified representation:
|
|
894
901
|
*
|
|
895
902
|
* ```ts override
|
|
896
|
-
* startAutoSave(): Promise<Persister
|
|
903
|
+
* startAutoSave(): Promise<Persister<SupportsMergeableStore>>;
|
|
897
904
|
* ```
|
|
898
905
|
*
|
|
899
906
|
* This method first runs a single call to the save method to ensure the data
|
|
@@ -927,7 +934,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
927
934
|
* ```
|
|
928
935
|
* @category Save
|
|
929
936
|
*/
|
|
930
|
-
startAutoSave(): Promise<Persister<Schemas>>;
|
|
937
|
+
startAutoSave(): Promise<Persister<Schemas, SupportsMergeableStore>>;
|
|
931
938
|
|
|
932
939
|
/**
|
|
933
940
|
* The stopAutoSave method stops the automatic save of data to storage
|
|
@@ -936,7 +943,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
936
943
|
* This has schema-based typing. The following is a simplified representation:
|
|
937
944
|
*
|
|
938
945
|
* ```ts override
|
|
939
|
-
* stopAutoSave(): Persister
|
|
946
|
+
* stopAutoSave(): Persister<SupportsMergeableStore>;
|
|
940
947
|
* ```
|
|
941
948
|
*
|
|
942
949
|
* If the Persister is not currently set to automatically save, this method
|
|
@@ -970,7 +977,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
970
977
|
* ```
|
|
971
978
|
* @category Save
|
|
972
979
|
*/
|
|
973
|
-
stopAutoSave(): Persister<Schemas>;
|
|
980
|
+
stopAutoSave(): Persister<Schemas, SupportsMergeableStore>;
|
|
974
981
|
|
|
975
982
|
/**
|
|
976
983
|
* The schedule method allows you to queue up a series of asynchronous actions
|
|
@@ -979,7 +986,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
979
986
|
* This has schema-based typing. The following is a simplified representation:
|
|
980
987
|
*
|
|
981
988
|
* ```ts override
|
|
982
|
-
* schedule(
|
|
989
|
+
* schedule(
|
|
990
|
+
* ...actions: Promise<any>[]
|
|
991
|
+
* ): Promise<Persister<SupportsMergeableStore>>;
|
|
983
992
|
* ```
|
|
984
993
|
*
|
|
985
994
|
* For example, a database Persister may need to ensure that multiple
|
|
@@ -1019,7 +1028,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1019
1028
|
* @category Lifecycle
|
|
1020
1029
|
* @since v4.0.0
|
|
1021
1030
|
*/
|
|
1022
|
-
schedule(
|
|
1031
|
+
schedule(
|
|
1032
|
+
...actions: Promise<any>[]
|
|
1033
|
+
): Promise<Persister<Schemas, SupportsMergeableStore>>;
|
|
1023
1034
|
|
|
1024
1035
|
/**
|
|
1025
1036
|
* The getStore method returns a reference to the underlying Store that is
|
|
@@ -1032,7 +1043,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1032
1043
|
* This has schema-based typing. The following is a simplified representation:
|
|
1033
1044
|
*
|
|
1034
1045
|
* ```ts override
|
|
1035
|
-
* getStore():
|
|
1046
|
+
* getStore(): SupportsMergeableStore extends true
|
|
1047
|
+
* ? Store | MergeableStore
|
|
1048
|
+
* : Store;
|
|
1036
1049
|
* ```
|
|
1037
1050
|
*
|
|
1038
1051
|
* ```js
|
|
@@ -1057,7 +1070,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1057
1070
|
* This has schema-based typing. The following is a simplified representation:
|
|
1058
1071
|
*
|
|
1059
1072
|
* ```ts override
|
|
1060
|
-
* destroy(): Persister
|
|
1073
|
+
* destroy(): Persister<SupportsMergeableStore>;
|
|
1061
1074
|
* ```
|
|
1062
1075
|
*
|
|
1063
1076
|
* This guarantees that all of the listeners that the object registered with
|
|
@@ -1084,7 +1097,7 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1084
1097
|
* ```
|
|
1085
1098
|
* @category Lifecycle
|
|
1086
1099
|
*/
|
|
1087
|
-
destroy(): Persister<Schemas>;
|
|
1100
|
+
destroy(): Persister<Schemas, SupportsMergeableStore>;
|
|
1088
1101
|
|
|
1089
1102
|
/**
|
|
1090
1103
|
* The getStats method provides a set of statistics about the Persister, and
|
|
@@ -1138,17 +1151,27 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1138
1151
|
* This has schema-based typing. The following is a simplified representation:
|
|
1139
1152
|
*
|
|
1140
1153
|
* ```ts override
|
|
1141
|
-
* createCustomPersister<
|
|
1142
|
-
*
|
|
1143
|
-
*
|
|
1154
|
+
* createCustomPersister<
|
|
1155
|
+
* ListeningHandle,
|
|
1156
|
+
* SupportsMergeableStore extends boolean,
|
|
1157
|
+
* >(
|
|
1158
|
+
* store: Store | (SupportsMergeableStore extends true ? MergeableStore : never),
|
|
1159
|
+
* getPersisted: () => Promise<
|
|
1160
|
+
* | Content
|
|
1161
|
+
* | (SupportsMergeableStore extends true ? MergeableContent : never)
|
|
1162
|
+
* | undefined
|
|
1163
|
+
* >,
|
|
1144
1164
|
* setPersisted: (
|
|
1145
|
-
* getContent: () =>
|
|
1146
|
-
*
|
|
1165
|
+
* getContent: () =>
|
|
1166
|
+
* | Content
|
|
1167
|
+
* | (SupportsMergeableStore extends true ? MergeableContent : never),
|
|
1168
|
+
* getChanges?: () => Changes,
|
|
1147
1169
|
* ) => Promise<void>,
|
|
1148
1170
|
* addPersisterListener: (listener: PersisterListener) => ListeningHandle,
|
|
1149
1171
|
* delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1150
1172
|
* onIgnoredError?: (error: any) => void,
|
|
1151
|
-
*
|
|
1173
|
+
* supportsMergeableStore?: SupportsMergeableStore,
|
|
1174
|
+
* ): Persister<SupportsMergeableStore>;
|
|
1152
1175
|
* ```
|
|
1153
1176
|
*
|
|
1154
1177
|
* As well as providing a reference to the Store to persist, you must provide
|
|
@@ -1184,6 +1207,9 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1184
1207
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
1185
1208
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
1186
1209
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
1210
|
+
* @param supportsMergeableStore An optional boolean to indicate that this
|
|
1211
|
+
* Persister will be able to handle MergeableStore persistence as well as
|
|
1212
|
+
* regular Store persistence, since v5.0.
|
|
1187
1213
|
* @returns A reference to the new Persister object.
|
|
1188
1214
|
* @example
|
|
1189
1215
|
* This example creates a custom Persister object and persists the Store to a
|
|
@@ -1225,18 +1251,28 @@ export interface Persister<in out Schemas extends OptionalSchemas> {
|
|
|
1225
1251
|
export function createCustomPersister<
|
|
1226
1252
|
Schemas extends OptionalSchemas,
|
|
1227
1253
|
ListeningHandle,
|
|
1254
|
+
SupportsMergeableStore extends boolean,
|
|
1228
1255
|
>(
|
|
1229
|
-
store:
|
|
1256
|
+
store:
|
|
1257
|
+
| Store<Schemas>
|
|
1258
|
+
| (SupportsMergeableStore extends true ? MergeableStore<Schemas> : never),
|
|
1230
1259
|
getPersisted: () => Promise<
|
|
1231
|
-
|
|
1260
|
+
| Content<Schemas>
|
|
1261
|
+
| (SupportsMergeableStore extends true ? MergeableContent<Schemas> : never)
|
|
1262
|
+
| undefined
|
|
1232
1263
|
>,
|
|
1233
1264
|
setPersisted: (
|
|
1234
|
-
getContent: () =>
|
|
1235
|
-
|
|
1265
|
+
getContent: () =>
|
|
1266
|
+
| Content<Schemas>
|
|
1267
|
+
| (SupportsMergeableStore extends true
|
|
1268
|
+
? MergeableContent<Schemas>
|
|
1269
|
+
: never),
|
|
1270
|
+
getChanges?: () => Changes<Schemas>,
|
|
1236
1271
|
) => Promise<void>,
|
|
1237
1272
|
addPersisterListener: (
|
|
1238
1273
|
listener: PersisterListener<Schemas>,
|
|
1239
1274
|
) => ListeningHandle,
|
|
1240
1275
|
delPersisterListener: (listeningHandle: ListeningHandle) => void,
|
|
1241
1276
|
onIgnoredError?: (error: any) => void,
|
|
1242
|
-
|
|
1277
|
+
supportsMergeableStore?: SupportsMergeableStore,
|
|
1278
|
+
): Persister<Schemas, SupportsMergeableStore>;
|