tinybase 8.0.0-beta.0 → 8.0.0-beta.1
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/@types/index.d.ts +1 -0
- package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
- package/@types/middleware/index.d.ts +1064 -0
- package/@types/middleware/with-schemas/index.d.ts +1355 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +0 -1
- package/@types/with-schemas/index.d.ts +1 -0
- package/agents.md +33 -11
- package/checkpoints/index.js +20 -20
- package/checkpoints/with-schemas/index.js +20 -20
- package/common/index.js +3 -2
- package/common/with-schemas/index.js +3 -2
- package/index.js +574 -215
- package/indexes/index.js +13 -12
- package/indexes/with-schemas/index.js +13 -12
- package/mergeable-store/index.js +461 -197
- package/mergeable-store/with-schemas/index.js +461 -197
- package/metrics/index.js +13 -12
- package/metrics/with-schemas/index.js +13 -12
- package/middleware/index.js +130 -0
- package/middleware/with-schemas/index.js +130 -0
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/common/index.js +1 -1
- package/min/common/index.js.gz +0 -0
- package/min/common/with-schemas/index.js +1 -1
- package/min/common/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/indexes/index.js +1 -1
- package/min/indexes/index.js.gz +0 -0
- package/min/indexes/with-schemas/index.js +1 -1
- package/min/indexes/with-schemas/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/middleware/index.js +1 -0
- package/min/middleware/index.js.gz +0 -0
- package/min/middleware/with-schemas/index.js +1 -0
- package/min/middleware/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/index.js +1 -1
- package/min/persisters/persister-partykit-server/index.js.gz +0 -0
- package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +610 -232
- package/omni/with-schemas/index.js +610 -232
- package/package.json +55 -19
- package/persisters/index.js +29 -12
- package/persisters/persister-automerge/index.js +17 -9
- package/persisters/persister-automerge/with-schemas/index.js +17 -9
- package/persisters/persister-browser/index.js +34 -10
- package/persisters/persister-browser/with-schemas/index.js +34 -10
- package/persisters/persister-cr-sqlite-wasm/index.js +29 -12
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -12
- package/persisters/persister-durable-object-sql-storage/index.js +29 -12
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +29 -12
- package/persisters/persister-durable-object-storage/index.js +24 -17
- package/persisters/persister-durable-object-storage/with-schemas/index.js +24 -17
- package/persisters/persister-electric-sql/index.js +29 -12
- package/persisters/persister-electric-sql/with-schemas/index.js +29 -12
- package/persisters/persister-expo-sqlite/index.js +29 -12
- package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -12
- package/persisters/persister-file/index.js +34 -10
- package/persisters/persister-file/with-schemas/index.js +34 -10
- package/persisters/persister-indexed-db/index.js +17 -9
- package/persisters/persister-indexed-db/with-schemas/index.js +17 -9
- package/persisters/persister-libsql/index.js +29 -12
- package/persisters/persister-libsql/with-schemas/index.js +29 -12
- package/persisters/persister-partykit-client/index.js +44 -11
- package/persisters/persister-partykit-client/with-schemas/index.js +44 -11
- package/persisters/persister-partykit-server/index.js +39 -4
- package/persisters/persister-partykit-server/with-schemas/index.js +39 -4
- package/persisters/persister-pglite/index.js +29 -12
- package/persisters/persister-pglite/with-schemas/index.js +29 -12
- package/persisters/persister-postgres/index.js +29 -12
- package/persisters/persister-postgres/with-schemas/index.js +29 -12
- package/persisters/persister-powersync/index.js +29 -12
- package/persisters/persister-powersync/with-schemas/index.js +29 -12
- package/persisters/persister-react-native-mmkv/index.js +17 -9
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +17 -9
- package/persisters/persister-react-native-sqlite/index.js +29 -12
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -12
- package/persisters/persister-remote/index.js +17 -9
- package/persisters/persister-remote/with-schemas/index.js +17 -9
- package/persisters/persister-sqlite-bun/index.js +29 -12
- package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -12
- package/persisters/persister-sqlite-wasm/index.js +29 -12
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -12
- package/persisters/persister-sqlite3/index.js +29 -12
- package/persisters/persister-sqlite3/with-schemas/index.js +29 -12
- package/persisters/persister-yjs/index.js +19 -11
- package/persisters/persister-yjs/with-schemas/index.js +19 -11
- package/persisters/with-schemas/index.js +29 -12
- package/queries/index.js +16 -20
- package/queries/with-schemas/index.js +16 -20
- package/readme.md +21 -13
- package/relationships/index.js +13 -12
- package/relationships/with-schemas/index.js +13 -12
- package/releases.md +41 -41
- package/store/index.js +442 -192
- package/store/with-schemas/index.js +442 -192
- package/synchronizers/index.js +17 -9
- package/synchronizers/synchronizer-broadcast-channel/index.js +17 -9
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -9
- package/synchronizers/synchronizer-local/index.js +19 -11
- package/synchronizers/synchronizer-local/with-schemas/index.js +19 -11
- package/synchronizers/synchronizer-ws-client/index.js +31 -10
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +31 -10
- package/synchronizers/synchronizer-ws-server/index.js +34 -13
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +34 -13
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +31 -10
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +31 -10
- package/synchronizers/synchronizer-ws-server-simple/index.js +11 -10
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +11 -10
- package/synchronizers/with-schemas/index.js +17 -9
- package/ui-react-inspector/index.js +438 -193
- package/ui-react-inspector/with-schemas/index.js +438 -193
- package/with-schemas/index.js +574 -215
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinybase",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.1",
|
|
4
4
|
"author": "jamesgpearce",
|
|
5
5
|
"repository": "github:tinyplex/tinybase",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,32 +21,32 @@
|
|
|
21
21
|
},
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@automerge/automerge-repo": "^2.5.
|
|
25
|
-
"@cloudflare/workers-types": "^4.
|
|
26
|
-
"@electric-sql/pglite": "^0.3.
|
|
27
|
-
"@libsql/client": "^0.
|
|
28
|
-
"@powersync/common": "^1.
|
|
29
|
-
"@sinclair/typebox": "^0.34.
|
|
30
|
-
"@sqlite.org/sqlite-wasm": "^3.
|
|
24
|
+
"@automerge/automerge-repo": "^2.5.3",
|
|
25
|
+
"@cloudflare/workers-types": "^4.20260228.0",
|
|
26
|
+
"@electric-sql/pglite": "^0.3.15",
|
|
27
|
+
"@libsql/client": "^0.17.0",
|
|
28
|
+
"@powersync/common": "^1.47.0",
|
|
29
|
+
"@sinclair/typebox": "^0.34.48",
|
|
30
|
+
"@sqlite.org/sqlite-wasm": "^3.51.2-build6",
|
|
31
31
|
"@vlcn.io/crsqlite-wasm": "^0.16.0",
|
|
32
32
|
"arktype": "^2.1.29",
|
|
33
|
-
"bun": "^1.3.
|
|
34
|
-
"effect": "^3.19.
|
|
33
|
+
"bun": "^1.3.9",
|
|
34
|
+
"effect": "^3.19.18",
|
|
35
35
|
"electric-sql": "^0.12.1",
|
|
36
|
-
"expo": "^54.0.
|
|
36
|
+
"expo": "^54.0.33",
|
|
37
37
|
"expo-sqlite": "^16.0.10",
|
|
38
38
|
"partykit": "^0.0.115",
|
|
39
|
-
"partysocket": "^1.1.
|
|
40
|
-
"postgres": "^3.4.
|
|
41
|
-
"react": "^19.
|
|
42
|
-
"react-dom": "^19.
|
|
43
|
-
"react-native-mmkv": "4.1.
|
|
39
|
+
"partysocket": "^1.1.14",
|
|
40
|
+
"postgres": "^3.4.8",
|
|
41
|
+
"react": "^19.2.4",
|
|
42
|
+
"react-dom": "^19.2.4",
|
|
43
|
+
"react-native-mmkv": "4.1.2",
|
|
44
44
|
"react-native-sqlite-storage": "^6.0.1",
|
|
45
45
|
"sqlite3": "^5.1.7",
|
|
46
46
|
"valibot": "^1.2.0",
|
|
47
|
-
"ws": "^8.
|
|
48
|
-
"yjs": "^13.6.
|
|
49
|
-
"zod": "^4.
|
|
47
|
+
"ws": "^8.19.0",
|
|
48
|
+
"yjs": "^13.6.29",
|
|
49
|
+
"zod": "^4.3.6"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
52
52
|
"@automerge/automerge-repo": {
|
|
@@ -174,6 +174,12 @@
|
|
|
174
174
|
"metrics/with-schemas": [
|
|
175
175
|
"./@types/metrics/with-schemas/index.d.ts"
|
|
176
176
|
],
|
|
177
|
+
"middleware": [
|
|
178
|
+
"./@types/middleware/index.d.ts"
|
|
179
|
+
],
|
|
180
|
+
"middleware/with-schemas": [
|
|
181
|
+
"./@types/middleware/with-schemas/index.d.ts"
|
|
182
|
+
],
|
|
177
183
|
"persisters": [
|
|
178
184
|
"./@types/persisters/index.d.ts"
|
|
179
185
|
],
|
|
@@ -474,6 +480,12 @@
|
|
|
474
480
|
"min/metrics/with-schemas": [
|
|
475
481
|
"./@types/metrics/with-schemas/index.d.ts"
|
|
476
482
|
],
|
|
483
|
+
"min/middleware": [
|
|
484
|
+
"./@types/middleware/index.d.ts"
|
|
485
|
+
],
|
|
486
|
+
"min/middleware/with-schemas": [
|
|
487
|
+
"./@types/middleware/with-schemas/index.d.ts"
|
|
488
|
+
],
|
|
477
489
|
"min/persisters": [
|
|
478
490
|
"./@types/persisters/index.d.ts"
|
|
479
491
|
],
|
|
@@ -819,6 +831,18 @@
|
|
|
819
831
|
"default": "./metrics/index.js"
|
|
820
832
|
}
|
|
821
833
|
},
|
|
834
|
+
"./middleware": {
|
|
835
|
+
"default": {
|
|
836
|
+
"types": "./@types/middleware/index.d.ts",
|
|
837
|
+
"default": "./middleware/index.js"
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
"./middleware/with-schemas": {
|
|
841
|
+
"default": {
|
|
842
|
+
"types": "./@types/middleware/with-schemas/index.d.ts",
|
|
843
|
+
"default": "./middleware/index.js"
|
|
844
|
+
}
|
|
845
|
+
},
|
|
822
846
|
"./persisters": {
|
|
823
847
|
"default": {
|
|
824
848
|
"types": "./@types/persisters/index.d.ts",
|
|
@@ -1419,6 +1443,18 @@
|
|
|
1419
1443
|
"default": "./min/metrics/index.js"
|
|
1420
1444
|
}
|
|
1421
1445
|
},
|
|
1446
|
+
"./min/middleware": {
|
|
1447
|
+
"default": {
|
|
1448
|
+
"types": "./@types/middleware/index.d.ts",
|
|
1449
|
+
"default": "./min/middleware/index.js"
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
"./min/middleware/with-schemas": {
|
|
1453
|
+
"default": {
|
|
1454
|
+
"types": "./@types/middleware/with-schemas/index.d.ts",
|
|
1455
|
+
"default": "./min/middleware/index.js"
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1422
1458
|
"./min/persisters": {
|
|
1423
1459
|
"default": {
|
|
1424
1460
|
"types": "./@types/persisters/index.d.ts",
|
package/persisters/index.js
CHANGED
|
@@ -94,21 +94,22 @@ const objValues = (obj) => object.values(obj);
|
|
|
94
94
|
const objSize = (obj) => size(objIds(obj));
|
|
95
95
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
96
96
|
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
|
|
97
|
+
const map = Map;
|
|
98
|
+
const mapNew = (entries) => new map(entries);
|
|
99
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
100
|
+
const mapForEach = (map2, cb) =>
|
|
101
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
101
102
|
const mapMap = (coll, cb) =>
|
|
102
103
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
103
|
-
const mapSet = (
|
|
104
|
-
isUndefined(value) ? (collDel(
|
|
105
|
-
const mapEnsure = (
|
|
106
|
-
if (!collHas(
|
|
107
|
-
mapSet(
|
|
104
|
+
const mapSet = (map2, key, value) =>
|
|
105
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
106
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
107
|
+
if (!collHas(map2, key)) {
|
|
108
|
+
mapSet(map2, key, getDefaultValue());
|
|
108
109
|
} else {
|
|
109
|
-
hadExistingValue?.(mapGet(
|
|
110
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
110
111
|
}
|
|
111
|
-
return mapGet(
|
|
112
|
+
return mapGet(map2, key);
|
|
112
113
|
};
|
|
113
114
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
114
115
|
ifNotUndefined(
|
|
@@ -320,6 +321,11 @@ const createCustomPersister = (
|
|
|
320
321
|
? store.applyChanges
|
|
321
322
|
: store.setContent)(contentOrChanges);
|
|
322
323
|
};
|
|
324
|
+
const saveAfterMutated = async () => {
|
|
325
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
326
|
+
await save();
|
|
327
|
+
}
|
|
328
|
+
};
|
|
323
329
|
const load = async (initialContent) => {
|
|
324
330
|
/* istanbul ignore else */
|
|
325
331
|
if (status != 2 /* Saving */) {
|
|
@@ -344,6 +350,7 @@ const createCustomPersister = (
|
|
|
344
350
|
},
|
|
345
351
|
);
|
|
346
352
|
setStatus(0 /* Idle */);
|
|
353
|
+
await saveAfterMutated();
|
|
347
354
|
});
|
|
348
355
|
}
|
|
349
356
|
return persister;
|
|
@@ -362,6 +369,7 @@ const createCustomPersister = (
|
|
|
362
369
|
loads++;
|
|
363
370
|
setContentOrChanges(changes ?? content);
|
|
364
371
|
setStatus(0 /* Idle */);
|
|
372
|
+
await saveAfterMutated();
|
|
365
373
|
}
|
|
366
374
|
} else {
|
|
367
375
|
await load();
|
|
@@ -479,7 +487,16 @@ const jsonParse = JSON.parse;
|
|
|
479
487
|
const jsonStringWithUndefined = (obj) =>
|
|
480
488
|
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
481
489
|
const jsonParseWithUndefined = (str) =>
|
|
482
|
-
|
|
490
|
+
// JSON.parse reviver removes properties with undefined values
|
|
491
|
+
replaceUndefinedString(jsonParse(str));
|
|
492
|
+
const replaceUndefinedString = (obj) =>
|
|
493
|
+
obj === UNDEFINED
|
|
494
|
+
? void 0
|
|
495
|
+
: isArray(obj)
|
|
496
|
+
? arrayMap(obj, replaceUndefinedString)
|
|
497
|
+
: isObject(obj)
|
|
498
|
+
? objMap(obj, replaceUndefinedString)
|
|
499
|
+
: obj;
|
|
483
500
|
|
|
484
501
|
const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
|
|
485
502
|
const getHash = (string) => {
|
|
@@ -71,17 +71,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
71
71
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
72
72
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
73
73
|
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
const map = Map;
|
|
75
|
+
const mapNew = (entries) => new map(entries);
|
|
76
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
77
|
+
const mapSet = (map2, key, value) =>
|
|
78
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
79
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
80
|
+
if (!collHas(map2, key)) {
|
|
81
|
+
mapSet(map2, key, getDefaultValue());
|
|
81
82
|
} else {
|
|
82
|
-
hadExistingValue?.(mapGet(
|
|
83
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
83
84
|
}
|
|
84
|
-
return mapGet(
|
|
85
|
+
return mapGet(map2, key);
|
|
85
86
|
};
|
|
86
87
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
87
88
|
ifNotUndefined(
|
|
@@ -283,6 +284,11 @@ const createCustomPersister = (
|
|
|
283
284
|
? store.applyChanges
|
|
284
285
|
: store.setContent)(contentOrChanges);
|
|
285
286
|
};
|
|
287
|
+
const saveAfterMutated = async () => {
|
|
288
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
289
|
+
await save();
|
|
290
|
+
}
|
|
291
|
+
};
|
|
286
292
|
const load = async (initialContent) => {
|
|
287
293
|
/* istanbul ignore else */
|
|
288
294
|
if (status != 2 /* Saving */) {
|
|
@@ -307,6 +313,7 @@ const createCustomPersister = (
|
|
|
307
313
|
},
|
|
308
314
|
);
|
|
309
315
|
setStatus(0 /* Idle */);
|
|
316
|
+
await saveAfterMutated();
|
|
310
317
|
});
|
|
311
318
|
}
|
|
312
319
|
return persister;
|
|
@@ -325,6 +332,7 @@ const createCustomPersister = (
|
|
|
325
332
|
loads++;
|
|
326
333
|
setContentOrChanges(changes ?? content);
|
|
327
334
|
setStatus(0 /* Idle */);
|
|
335
|
+
await saveAfterMutated();
|
|
328
336
|
}
|
|
329
337
|
} else {
|
|
330
338
|
await load();
|
|
@@ -71,17 +71,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
71
71
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
72
72
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
73
73
|
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
const map = Map;
|
|
75
|
+
const mapNew = (entries) => new map(entries);
|
|
76
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
77
|
+
const mapSet = (map2, key, value) =>
|
|
78
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
79
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
80
|
+
if (!collHas(map2, key)) {
|
|
81
|
+
mapSet(map2, key, getDefaultValue());
|
|
81
82
|
} else {
|
|
82
|
-
hadExistingValue?.(mapGet(
|
|
83
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
83
84
|
}
|
|
84
|
-
return mapGet(
|
|
85
|
+
return mapGet(map2, key);
|
|
85
86
|
};
|
|
86
87
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
87
88
|
ifNotUndefined(
|
|
@@ -283,6 +284,11 @@ const createCustomPersister = (
|
|
|
283
284
|
? store.applyChanges
|
|
284
285
|
: store.setContent)(contentOrChanges);
|
|
285
286
|
};
|
|
287
|
+
const saveAfterMutated = async () => {
|
|
288
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
289
|
+
await save();
|
|
290
|
+
}
|
|
291
|
+
};
|
|
286
292
|
const load = async (initialContent) => {
|
|
287
293
|
/* istanbul ignore else */
|
|
288
294
|
if (status != 2 /* Saving */) {
|
|
@@ -307,6 +313,7 @@ const createCustomPersister = (
|
|
|
307
313
|
},
|
|
308
314
|
);
|
|
309
315
|
setStatus(0 /* Idle */);
|
|
316
|
+
await saveAfterMutated();
|
|
310
317
|
});
|
|
311
318
|
}
|
|
312
319
|
return persister;
|
|
@@ -325,6 +332,7 @@ const createCustomPersister = (
|
|
|
325
332
|
loads++;
|
|
326
333
|
setContentOrChanges(changes ?? content);
|
|
327
334
|
setStatus(0 /* Idle */);
|
|
335
|
+
await saveAfterMutated();
|
|
328
336
|
}
|
|
329
337
|
} else {
|
|
330
338
|
await load();
|
|
@@ -26,12 +26,14 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
29
|
+
const arrayMap = (array, cb) => array.map(cb);
|
|
29
30
|
const arrayClear = (array, to) => array.splice(0, to);
|
|
30
31
|
const arrayPush = (array, ...values) => array.push(...values);
|
|
31
32
|
const arrayShift = (array) => array.shift();
|
|
32
33
|
|
|
33
34
|
const object = Object;
|
|
34
35
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
36
|
+
const objEntries = object.entries;
|
|
35
37
|
const isObject = (obj) =>
|
|
36
38
|
!isNullish(obj) &&
|
|
37
39
|
ifNotNullish(
|
|
@@ -45,6 +47,11 @@ const isObject = (obj) =>
|
|
|
45
47
|
);
|
|
46
48
|
const objIds = object.keys;
|
|
47
49
|
const objFreeze = object.freeze;
|
|
50
|
+
const objNew = (entries = []) => object.fromEntries(entries);
|
|
51
|
+
const objToArray = (obj, cb) =>
|
|
52
|
+
arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
|
|
53
|
+
const objMap = (obj, cb) =>
|
|
54
|
+
objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
|
|
48
55
|
const objSize = (obj) => size(objIds(obj));
|
|
49
56
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
50
57
|
|
|
@@ -53,7 +60,16 @@ const jsonParse = JSON.parse;
|
|
|
53
60
|
const jsonStringWithUndefined = (obj) =>
|
|
54
61
|
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
55
62
|
const jsonParseWithUndefined = (str) =>
|
|
56
|
-
|
|
63
|
+
// JSON.parse reviver removes properties with undefined values
|
|
64
|
+
replaceUndefinedString(jsonParse(str));
|
|
65
|
+
const replaceUndefinedString = (obj) =>
|
|
66
|
+
obj === UNDEFINED
|
|
67
|
+
? void 0
|
|
68
|
+
: isArray(obj)
|
|
69
|
+
? arrayMap(obj, replaceUndefinedString)
|
|
70
|
+
: isObject(obj)
|
|
71
|
+
? objMap(obj, replaceUndefinedString)
|
|
72
|
+
: obj;
|
|
57
73
|
|
|
58
74
|
const collSize = (coll) => coll?.size ?? 0;
|
|
59
75
|
const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
|
|
@@ -61,17 +77,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
61
77
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
62
78
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
63
79
|
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
80
|
+
const map = Map;
|
|
81
|
+
const mapNew = (entries) => new map(entries);
|
|
82
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
83
|
+
const mapSet = (map2, key, value) =>
|
|
84
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
85
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
86
|
+
if (!collHas(map2, key)) {
|
|
87
|
+
mapSet(map2, key, getDefaultValue());
|
|
71
88
|
} else {
|
|
72
|
-
hadExistingValue?.(mapGet(
|
|
89
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
73
90
|
}
|
|
74
|
-
return mapGet(
|
|
91
|
+
return mapGet(map2, key);
|
|
75
92
|
};
|
|
76
93
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
77
94
|
ifNotUndefined(
|
|
@@ -273,6 +290,11 @@ const createCustomPersister = (
|
|
|
273
290
|
? store.applyChanges
|
|
274
291
|
: store.setContent)(contentOrChanges);
|
|
275
292
|
};
|
|
293
|
+
const saveAfterMutated = async () => {
|
|
294
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
295
|
+
await save();
|
|
296
|
+
}
|
|
297
|
+
};
|
|
276
298
|
const load = async (initialContent) => {
|
|
277
299
|
/* istanbul ignore else */
|
|
278
300
|
if (status != 2 /* Saving */) {
|
|
@@ -297,6 +319,7 @@ const createCustomPersister = (
|
|
|
297
319
|
},
|
|
298
320
|
);
|
|
299
321
|
setStatus(0 /* Idle */);
|
|
322
|
+
await saveAfterMutated();
|
|
300
323
|
});
|
|
301
324
|
}
|
|
302
325
|
return persister;
|
|
@@ -315,6 +338,7 @@ const createCustomPersister = (
|
|
|
315
338
|
loads++;
|
|
316
339
|
setContentOrChanges(changes ?? content);
|
|
317
340
|
setStatus(0 /* Idle */);
|
|
341
|
+
await saveAfterMutated();
|
|
318
342
|
}
|
|
319
343
|
} else {
|
|
320
344
|
await load();
|
|
@@ -26,12 +26,14 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
29
|
+
const arrayMap = (array, cb) => array.map(cb);
|
|
29
30
|
const arrayClear = (array, to) => array.splice(0, to);
|
|
30
31
|
const arrayPush = (array, ...values) => array.push(...values);
|
|
31
32
|
const arrayShift = (array) => array.shift();
|
|
32
33
|
|
|
33
34
|
const object = Object;
|
|
34
35
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
36
|
+
const objEntries = object.entries;
|
|
35
37
|
const isObject = (obj) =>
|
|
36
38
|
!isNullish(obj) &&
|
|
37
39
|
ifNotNullish(
|
|
@@ -45,6 +47,11 @@ const isObject = (obj) =>
|
|
|
45
47
|
);
|
|
46
48
|
const objIds = object.keys;
|
|
47
49
|
const objFreeze = object.freeze;
|
|
50
|
+
const objNew = (entries = []) => object.fromEntries(entries);
|
|
51
|
+
const objToArray = (obj, cb) =>
|
|
52
|
+
arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
|
|
53
|
+
const objMap = (obj, cb) =>
|
|
54
|
+
objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
|
|
48
55
|
const objSize = (obj) => size(objIds(obj));
|
|
49
56
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
50
57
|
|
|
@@ -53,7 +60,16 @@ const jsonParse = JSON.parse;
|
|
|
53
60
|
const jsonStringWithUndefined = (obj) =>
|
|
54
61
|
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
55
62
|
const jsonParseWithUndefined = (str) =>
|
|
56
|
-
|
|
63
|
+
// JSON.parse reviver removes properties with undefined values
|
|
64
|
+
replaceUndefinedString(jsonParse(str));
|
|
65
|
+
const replaceUndefinedString = (obj) =>
|
|
66
|
+
obj === UNDEFINED
|
|
67
|
+
? void 0
|
|
68
|
+
: isArray(obj)
|
|
69
|
+
? arrayMap(obj, replaceUndefinedString)
|
|
70
|
+
: isObject(obj)
|
|
71
|
+
? objMap(obj, replaceUndefinedString)
|
|
72
|
+
: obj;
|
|
57
73
|
|
|
58
74
|
const collSize = (coll) => coll?.size ?? 0;
|
|
59
75
|
const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
|
|
@@ -61,17 +77,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
61
77
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
62
78
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
63
79
|
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
80
|
+
const map = Map;
|
|
81
|
+
const mapNew = (entries) => new map(entries);
|
|
82
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
83
|
+
const mapSet = (map2, key, value) =>
|
|
84
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
85
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
86
|
+
if (!collHas(map2, key)) {
|
|
87
|
+
mapSet(map2, key, getDefaultValue());
|
|
71
88
|
} else {
|
|
72
|
-
hadExistingValue?.(mapGet(
|
|
89
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
73
90
|
}
|
|
74
|
-
return mapGet(
|
|
91
|
+
return mapGet(map2, key);
|
|
75
92
|
};
|
|
76
93
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
77
94
|
ifNotUndefined(
|
|
@@ -273,6 +290,11 @@ const createCustomPersister = (
|
|
|
273
290
|
? store.applyChanges
|
|
274
291
|
: store.setContent)(contentOrChanges);
|
|
275
292
|
};
|
|
293
|
+
const saveAfterMutated = async () => {
|
|
294
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
295
|
+
await save();
|
|
296
|
+
}
|
|
297
|
+
};
|
|
276
298
|
const load = async (initialContent) => {
|
|
277
299
|
/* istanbul ignore else */
|
|
278
300
|
if (status != 2 /* Saving */) {
|
|
@@ -297,6 +319,7 @@ const createCustomPersister = (
|
|
|
297
319
|
},
|
|
298
320
|
);
|
|
299
321
|
setStatus(0 /* Idle */);
|
|
322
|
+
await saveAfterMutated();
|
|
300
323
|
});
|
|
301
324
|
}
|
|
302
325
|
return persister;
|
|
@@ -315,6 +338,7 @@ const createCustomPersister = (
|
|
|
315
338
|
loads++;
|
|
316
339
|
setContentOrChanges(changes ?? content);
|
|
317
340
|
setStatus(0 /* Idle */);
|
|
341
|
+
await saveAfterMutated();
|
|
318
342
|
}
|
|
319
343
|
} else {
|
|
320
344
|
await load();
|
|
@@ -135,21 +135,22 @@ const objValues = (obj) => object.values(obj);
|
|
|
135
135
|
const objSize = (obj) => size(objIds(obj));
|
|
136
136
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
137
137
|
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
const
|
|
141
|
-
|
|
138
|
+
const map = Map;
|
|
139
|
+
const mapNew = (entries) => new map(entries);
|
|
140
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
141
|
+
const mapForEach = (map2, cb) =>
|
|
142
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
142
143
|
const mapMap = (coll, cb) =>
|
|
143
144
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
144
|
-
const mapSet = (
|
|
145
|
-
isUndefined(value) ? (collDel(
|
|
146
|
-
const mapEnsure = (
|
|
147
|
-
if (!collHas(
|
|
148
|
-
mapSet(
|
|
145
|
+
const mapSet = (map2, key, value) =>
|
|
146
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
147
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
148
|
+
if (!collHas(map2, key)) {
|
|
149
|
+
mapSet(map2, key, getDefaultValue());
|
|
149
150
|
} else {
|
|
150
|
-
hadExistingValue?.(mapGet(
|
|
151
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
151
152
|
}
|
|
152
|
-
return mapGet(
|
|
153
|
+
return mapGet(map2, key);
|
|
153
154
|
};
|
|
154
155
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
155
156
|
ifNotUndefined(
|
|
@@ -304,7 +305,16 @@ const jsonParse = JSON.parse;
|
|
|
304
305
|
const jsonStringWithUndefined = (obj) =>
|
|
305
306
|
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
306
307
|
const jsonParseWithUndefined = (str) =>
|
|
307
|
-
|
|
308
|
+
// JSON.parse reviver removes properties with undefined values
|
|
309
|
+
replaceUndefinedString(jsonParse(str));
|
|
310
|
+
const replaceUndefinedString = (obj) =>
|
|
311
|
+
obj === UNDEFINED
|
|
312
|
+
? void 0
|
|
313
|
+
: isArray(obj)
|
|
314
|
+
? arrayMap(obj, replaceUndefinedString)
|
|
315
|
+
: isObject(obj)
|
|
316
|
+
? objMap(obj, replaceUndefinedString)
|
|
317
|
+
: obj;
|
|
308
318
|
|
|
309
319
|
const INTEGER = /^\d+$/;
|
|
310
320
|
const getPoolFunctions = () => {
|
|
@@ -476,6 +486,11 @@ const createCustomPersister = (
|
|
|
476
486
|
? store.applyChanges
|
|
477
487
|
: store.setContent)(contentOrChanges);
|
|
478
488
|
};
|
|
489
|
+
const saveAfterMutated = async () => {
|
|
490
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
491
|
+
await save();
|
|
492
|
+
}
|
|
493
|
+
};
|
|
479
494
|
const load = async (initialContent) => {
|
|
480
495
|
/* istanbul ignore else */
|
|
481
496
|
if (status != 2 /* Saving */) {
|
|
@@ -500,6 +515,7 @@ const createCustomPersister = (
|
|
|
500
515
|
},
|
|
501
516
|
);
|
|
502
517
|
setStatus(0 /* Idle */);
|
|
518
|
+
await saveAfterMutated();
|
|
503
519
|
});
|
|
504
520
|
}
|
|
505
521
|
return persister;
|
|
@@ -518,6 +534,7 @@ const createCustomPersister = (
|
|
|
518
534
|
loads++;
|
|
519
535
|
setContentOrChanges(changes ?? content);
|
|
520
536
|
setStatus(0 /* Idle */);
|
|
537
|
+
await saveAfterMutated();
|
|
521
538
|
}
|
|
522
539
|
} else {
|
|
523
540
|
await load();
|
|
@@ -135,21 +135,22 @@ const objValues = (obj) => object.values(obj);
|
|
|
135
135
|
const objSize = (obj) => size(objIds(obj));
|
|
136
136
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
137
137
|
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
const
|
|
141
|
-
|
|
138
|
+
const map = Map;
|
|
139
|
+
const mapNew = (entries) => new map(entries);
|
|
140
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
141
|
+
const mapForEach = (map2, cb) =>
|
|
142
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
142
143
|
const mapMap = (coll, cb) =>
|
|
143
144
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
144
|
-
const mapSet = (
|
|
145
|
-
isUndefined(value) ? (collDel(
|
|
146
|
-
const mapEnsure = (
|
|
147
|
-
if (!collHas(
|
|
148
|
-
mapSet(
|
|
145
|
+
const mapSet = (map2, key, value) =>
|
|
146
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
147
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
148
|
+
if (!collHas(map2, key)) {
|
|
149
|
+
mapSet(map2, key, getDefaultValue());
|
|
149
150
|
} else {
|
|
150
|
-
hadExistingValue?.(mapGet(
|
|
151
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
151
152
|
}
|
|
152
|
-
return mapGet(
|
|
153
|
+
return mapGet(map2, key);
|
|
153
154
|
};
|
|
154
155
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
155
156
|
ifNotUndefined(
|
|
@@ -304,7 +305,16 @@ const jsonParse = JSON.parse;
|
|
|
304
305
|
const jsonStringWithUndefined = (obj) =>
|
|
305
306
|
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
306
307
|
const jsonParseWithUndefined = (str) =>
|
|
307
|
-
|
|
308
|
+
// JSON.parse reviver removes properties with undefined values
|
|
309
|
+
replaceUndefinedString(jsonParse(str));
|
|
310
|
+
const replaceUndefinedString = (obj) =>
|
|
311
|
+
obj === UNDEFINED
|
|
312
|
+
? void 0
|
|
313
|
+
: isArray(obj)
|
|
314
|
+
? arrayMap(obj, replaceUndefinedString)
|
|
315
|
+
: isObject(obj)
|
|
316
|
+
? objMap(obj, replaceUndefinedString)
|
|
317
|
+
: obj;
|
|
308
318
|
|
|
309
319
|
const INTEGER = /^\d+$/;
|
|
310
320
|
const getPoolFunctions = () => {
|
|
@@ -476,6 +486,11 @@ const createCustomPersister = (
|
|
|
476
486
|
? store.applyChanges
|
|
477
487
|
: store.setContent)(contentOrChanges);
|
|
478
488
|
};
|
|
489
|
+
const saveAfterMutated = async () => {
|
|
490
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
491
|
+
await save();
|
|
492
|
+
}
|
|
493
|
+
};
|
|
479
494
|
const load = async (initialContent) => {
|
|
480
495
|
/* istanbul ignore else */
|
|
481
496
|
if (status != 2 /* Saving */) {
|
|
@@ -500,6 +515,7 @@ const createCustomPersister = (
|
|
|
500
515
|
},
|
|
501
516
|
);
|
|
502
517
|
setStatus(0 /* Idle */);
|
|
518
|
+
await saveAfterMutated();
|
|
503
519
|
});
|
|
504
520
|
}
|
|
505
521
|
return persister;
|
|
@@ -518,6 +534,7 @@ const createCustomPersister = (
|
|
|
518
534
|
loads++;
|
|
519
535
|
setContentOrChanges(changes ?? content);
|
|
520
536
|
setStatus(0 /* Idle */);
|
|
537
|
+
await saveAfterMutated();
|
|
521
538
|
}
|
|
522
539
|
} else {
|
|
523
540
|
await load();
|