tinybase 7.3.3 → 7.3.4
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/checkpoints/index.js +12 -11
- package/checkpoints/with-schemas/index.js +12 -11
- package/common/index.js +3 -2
- package/common/with-schemas/index.js +3 -2
- package/index.js +92 -64
- package/indexes/index.js +13 -12
- package/indexes/with-schemas/index.js +13 -12
- package/mergeable-store/index.js +92 -64
- package/mergeable-store/with-schemas/index.js +92 -64
- package/metrics/index.js +13 -12
- package/metrics/with-schemas/index.js +13 -12
- 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/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-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 +99 -64
- package/omni/with-schemas/index.js +99 -64
- package/package.json +3 -3
- package/persisters/index.js +19 -11
- package/persisters/persister-automerge/index.js +17 -9
- package/persisters/persister-automerge/with-schemas/index.js +17 -9
- package/persisters/persister-browser/index.js +17 -9
- package/persisters/persister-browser/with-schemas/index.js +17 -9
- package/persisters/persister-cr-sqlite-wasm/index.js +19 -11
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +19 -11
- package/persisters/persister-durable-object-sql-storage/index.js +19 -11
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +19 -11
- package/persisters/persister-durable-object-storage/index.js +19 -11
- package/persisters/persister-durable-object-storage/with-schemas/index.js +19 -11
- package/persisters/persister-electric-sql/index.js +19 -11
- package/persisters/persister-electric-sql/with-schemas/index.js +19 -11
- package/persisters/persister-expo-sqlite/index.js +19 -11
- package/persisters/persister-expo-sqlite/with-schemas/index.js +19 -11
- package/persisters/persister-file/index.js +17 -9
- package/persisters/persister-file/with-schemas/index.js +17 -9
- 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 +19 -11
- package/persisters/persister-libsql/with-schemas/index.js +19 -11
- package/persisters/persister-partykit-client/index.js +17 -9
- package/persisters/persister-partykit-client/with-schemas/index.js +17 -9
- package/persisters/persister-partykit-server/index.js +2 -2
- package/persisters/persister-partykit-server/with-schemas/index.js +2 -2
- package/persisters/persister-pglite/index.js +19 -11
- package/persisters/persister-pglite/with-schemas/index.js +19 -11
- package/persisters/persister-postgres/index.js +19 -11
- package/persisters/persister-postgres/with-schemas/index.js +19 -11
- package/persisters/persister-powersync/index.js +19 -11
- package/persisters/persister-powersync/with-schemas/index.js +19 -11
- 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 +19 -11
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +19 -11
- 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 +19 -11
- package/persisters/persister-sqlite-bun/with-schemas/index.js +19 -11
- package/persisters/persister-sqlite-wasm/index.js +19 -11
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +19 -11
- package/persisters/persister-sqlite3/index.js +19 -11
- package/persisters/persister-sqlite3/with-schemas/index.js +19 -11
- package/persisters/persister-yjs/index.js +19 -11
- package/persisters/persister-yjs/with-schemas/index.js +19 -11
- package/persisters/with-schemas/index.js +19 -11
- package/queries/index.js +15 -14
- package/queries/with-schemas/index.js +15 -14
- package/readme.md +2 -2
- package/relationships/index.js +13 -12
- package/relationships/with-schemas/index.js +13 -12
- package/store/index.js +74 -60
- package/store/with-schemas/index.js +74 -60
- 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 +17 -9
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +17 -9
- package/synchronizers/synchronizer-ws-server/index.js +20 -12
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +20 -12
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +17 -9
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +17 -9
- 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 +81 -60
- package/ui-react-inspector/with-schemas/index.js +81 -60
- package/with-schemas/index.js +92 -64
|
@@ -114,21 +114,22 @@ const getHash = (string) => {
|
|
|
114
114
|
return hash >>> 0;
|
|
115
115
|
};
|
|
116
116
|
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
|
|
117
|
+
const map = Map;
|
|
118
|
+
const mapNew = (entries) => new map(entries);
|
|
119
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
120
|
+
const mapForEach = (map2, cb) =>
|
|
121
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
121
122
|
const mapMap = (coll, cb) =>
|
|
122
123
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
123
|
-
const mapSet = (
|
|
124
|
-
isUndefined(value) ? (collDel(
|
|
125
|
-
const mapEnsure = (
|
|
126
|
-
if (!collHas(
|
|
127
|
-
mapSet(
|
|
124
|
+
const mapSet = (map2, key, value) =>
|
|
125
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
126
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
127
|
+
if (!collHas(map2, key)) {
|
|
128
|
+
mapSet(map2, key, getDefaultValue());
|
|
128
129
|
} else {
|
|
129
|
-
hadExistingValue?.(mapGet(
|
|
130
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
130
131
|
}
|
|
131
|
-
return mapGet(
|
|
132
|
+
return mapGet(map2, key);
|
|
132
133
|
};
|
|
133
134
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
134
135
|
ifNotUndefined(
|
|
@@ -489,6 +490,11 @@ const createCustomPersister = (
|
|
|
489
490
|
? store.applyChanges
|
|
490
491
|
: store.setContent)(contentOrChanges);
|
|
491
492
|
};
|
|
493
|
+
const saveAfterMutated = async () => {
|
|
494
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
495
|
+
await save();
|
|
496
|
+
}
|
|
497
|
+
};
|
|
492
498
|
const load = async (initialContent) => {
|
|
493
499
|
/* istanbul ignore else */
|
|
494
500
|
if (status != 2 /* Saving */) {
|
|
@@ -513,6 +519,7 @@ const createCustomPersister = (
|
|
|
513
519
|
},
|
|
514
520
|
);
|
|
515
521
|
setStatus(0 /* Idle */);
|
|
522
|
+
await saveAfterMutated();
|
|
516
523
|
});
|
|
517
524
|
}
|
|
518
525
|
return persister;
|
|
@@ -531,6 +538,7 @@ const createCustomPersister = (
|
|
|
531
538
|
loads++;
|
|
532
539
|
setContentOrChanges(changes ?? content);
|
|
533
540
|
setStatus(0 /* Idle */);
|
|
541
|
+
await saveAfterMutated();
|
|
534
542
|
}
|
|
535
543
|
} else {
|
|
536
544
|
await load();
|
|
@@ -114,21 +114,22 @@ const getHash = (string) => {
|
|
|
114
114
|
return hash >>> 0;
|
|
115
115
|
};
|
|
116
116
|
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
|
|
117
|
+
const map = Map;
|
|
118
|
+
const mapNew = (entries) => new map(entries);
|
|
119
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
120
|
+
const mapForEach = (map2, cb) =>
|
|
121
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
121
122
|
const mapMap = (coll, cb) =>
|
|
122
123
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
123
|
-
const mapSet = (
|
|
124
|
-
isUndefined(value) ? (collDel(
|
|
125
|
-
const mapEnsure = (
|
|
126
|
-
if (!collHas(
|
|
127
|
-
mapSet(
|
|
124
|
+
const mapSet = (map2, key, value) =>
|
|
125
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
126
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
127
|
+
if (!collHas(map2, key)) {
|
|
128
|
+
mapSet(map2, key, getDefaultValue());
|
|
128
129
|
} else {
|
|
129
|
-
hadExistingValue?.(mapGet(
|
|
130
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
130
131
|
}
|
|
131
|
-
return mapGet(
|
|
132
|
+
return mapGet(map2, key);
|
|
132
133
|
};
|
|
133
134
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
134
135
|
ifNotUndefined(
|
|
@@ -489,6 +490,11 @@ const createCustomPersister = (
|
|
|
489
490
|
? store.applyChanges
|
|
490
491
|
: store.setContent)(contentOrChanges);
|
|
491
492
|
};
|
|
493
|
+
const saveAfterMutated = async () => {
|
|
494
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
495
|
+
await save();
|
|
496
|
+
}
|
|
497
|
+
};
|
|
492
498
|
const load = async (initialContent) => {
|
|
493
499
|
/* istanbul ignore else */
|
|
494
500
|
if (status != 2 /* Saving */) {
|
|
@@ -513,6 +519,7 @@ const createCustomPersister = (
|
|
|
513
519
|
},
|
|
514
520
|
);
|
|
515
521
|
setStatus(0 /* Idle */);
|
|
522
|
+
await saveAfterMutated();
|
|
516
523
|
});
|
|
517
524
|
}
|
|
518
525
|
return persister;
|
|
@@ -531,6 +538,7 @@ const createCustomPersister = (
|
|
|
531
538
|
loads++;
|
|
532
539
|
setContentOrChanges(changes ?? content);
|
|
533
540
|
setStatus(0 /* Idle */);
|
|
541
|
+
await saveAfterMutated();
|
|
534
542
|
}
|
|
535
543
|
} else {
|
|
536
544
|
await load();
|
|
@@ -144,21 +144,22 @@ const getWhereCondition = (tableName, condition = TRUE) =>
|
|
|
144
144
|
WHERE +
|
|
145
145
|
`(${strReplace(condition, TABLE_NAME_PLACEHOLDER, escapeId(tableName))})`;
|
|
146
146
|
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
147
|
+
const map = Map;
|
|
148
|
+
const mapNew = (entries) => new map(entries);
|
|
149
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
150
|
+
const mapForEach = (map2, cb) =>
|
|
151
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
151
152
|
const mapMap = (coll, cb) =>
|
|
152
153
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
153
|
-
const mapSet = (
|
|
154
|
-
isUndefined(value) ? (collDel(
|
|
155
|
-
const mapEnsure = (
|
|
156
|
-
if (!collHas(
|
|
157
|
-
mapSet(
|
|
154
|
+
const mapSet = (map2, key, value) =>
|
|
155
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
156
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
157
|
+
if (!collHas(map2, key)) {
|
|
158
|
+
mapSet(map2, key, getDefaultValue());
|
|
158
159
|
} else {
|
|
159
|
-
hadExistingValue?.(mapGet(
|
|
160
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
160
161
|
}
|
|
161
|
-
return mapGet(
|
|
162
|
+
return mapGet(map2, key);
|
|
162
163
|
};
|
|
163
164
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
164
165
|
ifNotUndefined(
|
|
@@ -486,6 +487,11 @@ const createCustomPersister = (
|
|
|
486
487
|
? store.applyChanges
|
|
487
488
|
: store.setContent)(contentOrChanges);
|
|
488
489
|
};
|
|
490
|
+
const saveAfterMutated = async () => {
|
|
491
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
492
|
+
await save();
|
|
493
|
+
}
|
|
494
|
+
};
|
|
489
495
|
const load = async (initialContent) => {
|
|
490
496
|
/* istanbul ignore else */
|
|
491
497
|
if (status != 2 /* Saving */) {
|
|
@@ -510,6 +516,7 @@ const createCustomPersister = (
|
|
|
510
516
|
},
|
|
511
517
|
);
|
|
512
518
|
setStatus(0 /* Idle */);
|
|
519
|
+
await saveAfterMutated();
|
|
513
520
|
});
|
|
514
521
|
}
|
|
515
522
|
return persister;
|
|
@@ -528,6 +535,7 @@ const createCustomPersister = (
|
|
|
528
535
|
loads++;
|
|
529
536
|
setContentOrChanges(changes ?? content);
|
|
530
537
|
setStatus(0 /* Idle */);
|
|
538
|
+
await saveAfterMutated();
|
|
531
539
|
}
|
|
532
540
|
} else {
|
|
533
541
|
await load();
|
|
@@ -144,21 +144,22 @@ const getWhereCondition = (tableName, condition = TRUE) =>
|
|
|
144
144
|
WHERE +
|
|
145
145
|
`(${strReplace(condition, TABLE_NAME_PLACEHOLDER, escapeId(tableName))})`;
|
|
146
146
|
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
147
|
+
const map = Map;
|
|
148
|
+
const mapNew = (entries) => new map(entries);
|
|
149
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
150
|
+
const mapForEach = (map2, cb) =>
|
|
151
|
+
collForEach(map2, (value, key) => cb(key, value));
|
|
151
152
|
const mapMap = (coll, cb) =>
|
|
152
153
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
153
|
-
const mapSet = (
|
|
154
|
-
isUndefined(value) ? (collDel(
|
|
155
|
-
const mapEnsure = (
|
|
156
|
-
if (!collHas(
|
|
157
|
-
mapSet(
|
|
154
|
+
const mapSet = (map2, key, value) =>
|
|
155
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
156
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
157
|
+
if (!collHas(map2, key)) {
|
|
158
|
+
mapSet(map2, key, getDefaultValue());
|
|
158
159
|
} else {
|
|
159
|
-
hadExistingValue?.(mapGet(
|
|
160
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
160
161
|
}
|
|
161
|
-
return mapGet(
|
|
162
|
+
return mapGet(map2, key);
|
|
162
163
|
};
|
|
163
164
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
164
165
|
ifNotUndefined(
|
|
@@ -486,6 +487,11 @@ const createCustomPersister = (
|
|
|
486
487
|
? store.applyChanges
|
|
487
488
|
: store.setContent)(contentOrChanges);
|
|
488
489
|
};
|
|
490
|
+
const saveAfterMutated = async () => {
|
|
491
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
492
|
+
await save();
|
|
493
|
+
}
|
|
494
|
+
};
|
|
489
495
|
const load = async (initialContent) => {
|
|
490
496
|
/* istanbul ignore else */
|
|
491
497
|
if (status != 2 /* Saving */) {
|
|
@@ -510,6 +516,7 @@ const createCustomPersister = (
|
|
|
510
516
|
},
|
|
511
517
|
);
|
|
512
518
|
setStatus(0 /* Idle */);
|
|
519
|
+
await saveAfterMutated();
|
|
513
520
|
});
|
|
514
521
|
}
|
|
515
522
|
return persister;
|
|
@@ -528,6 +535,7 @@ const createCustomPersister = (
|
|
|
528
535
|
loads++;
|
|
529
536
|
setContentOrChanges(changes ?? content);
|
|
530
537
|
setStatus(0 /* Idle */);
|
|
538
|
+
await saveAfterMutated();
|
|
531
539
|
}
|
|
532
540
|
} else {
|
|
533
541
|
await load();
|
|
@@ -51,17 +51,18 @@ const objFreeze = object.freeze;
|
|
|
51
51
|
const objSize = (obj) => size(objIds(obj));
|
|
52
52
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
53
53
|
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
const map = Map;
|
|
55
|
+
const mapNew = (entries) => new map(entries);
|
|
56
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
57
|
+
const mapSet = (map2, key, value) =>
|
|
58
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
59
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
60
|
+
if (!collHas(map2, key)) {
|
|
61
|
+
mapSet(map2, key, getDefaultValue());
|
|
61
62
|
} else {
|
|
62
|
-
hadExistingValue?.(mapGet(
|
|
63
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
63
64
|
}
|
|
64
|
-
return mapGet(
|
|
65
|
+
return mapGet(map2, key);
|
|
65
66
|
};
|
|
66
67
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
67
68
|
ifNotUndefined(
|
|
@@ -263,6 +264,11 @@ const createCustomPersister = (
|
|
|
263
264
|
? store.applyChanges
|
|
264
265
|
: store.setContent)(contentOrChanges);
|
|
265
266
|
};
|
|
267
|
+
const saveAfterMutated = async () => {
|
|
268
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
269
|
+
await save();
|
|
270
|
+
}
|
|
271
|
+
};
|
|
266
272
|
const load = async (initialContent) => {
|
|
267
273
|
/* istanbul ignore else */
|
|
268
274
|
if (status != 2 /* Saving */) {
|
|
@@ -287,6 +293,7 @@ const createCustomPersister = (
|
|
|
287
293
|
},
|
|
288
294
|
);
|
|
289
295
|
setStatus(0 /* Idle */);
|
|
296
|
+
await saveAfterMutated();
|
|
290
297
|
});
|
|
291
298
|
}
|
|
292
299
|
return persister;
|
|
@@ -305,6 +312,7 @@ const createCustomPersister = (
|
|
|
305
312
|
loads++;
|
|
306
313
|
setContentOrChanges(changes ?? content);
|
|
307
314
|
setStatus(0 /* Idle */);
|
|
315
|
+
await saveAfterMutated();
|
|
308
316
|
}
|
|
309
317
|
} else {
|
|
310
318
|
await load();
|
|
@@ -51,17 +51,18 @@ const objFreeze = object.freeze;
|
|
|
51
51
|
const objSize = (obj) => size(objIds(obj));
|
|
52
52
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
53
53
|
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
const map = Map;
|
|
55
|
+
const mapNew = (entries) => new map(entries);
|
|
56
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
57
|
+
const mapSet = (map2, key, value) =>
|
|
58
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
59
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
60
|
+
if (!collHas(map2, key)) {
|
|
61
|
+
mapSet(map2, key, getDefaultValue());
|
|
61
62
|
} else {
|
|
62
|
-
hadExistingValue?.(mapGet(
|
|
63
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
63
64
|
}
|
|
64
|
-
return mapGet(
|
|
65
|
+
return mapGet(map2, key);
|
|
65
66
|
};
|
|
66
67
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
67
68
|
ifNotUndefined(
|
|
@@ -263,6 +264,11 @@ const createCustomPersister = (
|
|
|
263
264
|
? store.applyChanges
|
|
264
265
|
: store.setContent)(contentOrChanges);
|
|
265
266
|
};
|
|
267
|
+
const saveAfterMutated = async () => {
|
|
268
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
269
|
+
await save();
|
|
270
|
+
}
|
|
271
|
+
};
|
|
266
272
|
const load = async (initialContent) => {
|
|
267
273
|
/* istanbul ignore else */
|
|
268
274
|
if (status != 2 /* Saving */) {
|
|
@@ -287,6 +293,7 @@ const createCustomPersister = (
|
|
|
287
293
|
},
|
|
288
294
|
);
|
|
289
295
|
setStatus(0 /* Idle */);
|
|
296
|
+
await saveAfterMutated();
|
|
290
297
|
});
|
|
291
298
|
}
|
|
292
299
|
return persister;
|
|
@@ -305,6 +312,7 @@ const createCustomPersister = (
|
|
|
305
312
|
loads++;
|
|
306
313
|
setContentOrChanges(changes ?? content);
|
|
307
314
|
setStatus(0 /* Idle */);
|
|
315
|
+
await saveAfterMutated();
|
|
308
316
|
}
|
|
309
317
|
} else {
|
|
310
318
|
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(
|
|
@@ -485,6 +486,11 @@ const createCustomPersister = (
|
|
|
485
486
|
? store.applyChanges
|
|
486
487
|
: store.setContent)(contentOrChanges);
|
|
487
488
|
};
|
|
489
|
+
const saveAfterMutated = async () => {
|
|
490
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
491
|
+
await save();
|
|
492
|
+
}
|
|
493
|
+
};
|
|
488
494
|
const load = async (initialContent) => {
|
|
489
495
|
/* istanbul ignore else */
|
|
490
496
|
if (status != 2 /* Saving */) {
|
|
@@ -509,6 +515,7 @@ const createCustomPersister = (
|
|
|
509
515
|
},
|
|
510
516
|
);
|
|
511
517
|
setStatus(0 /* Idle */);
|
|
518
|
+
await saveAfterMutated();
|
|
512
519
|
});
|
|
513
520
|
}
|
|
514
521
|
return persister;
|
|
@@ -527,6 +534,7 @@ const createCustomPersister = (
|
|
|
527
534
|
loads++;
|
|
528
535
|
setContentOrChanges(changes ?? content);
|
|
529
536
|
setStatus(0 /* Idle */);
|
|
537
|
+
await saveAfterMutated();
|
|
530
538
|
}
|
|
531
539
|
} else {
|
|
532
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(
|
|
@@ -485,6 +486,11 @@ const createCustomPersister = (
|
|
|
485
486
|
? store.applyChanges
|
|
486
487
|
: store.setContent)(contentOrChanges);
|
|
487
488
|
};
|
|
489
|
+
const saveAfterMutated = async () => {
|
|
490
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
491
|
+
await save();
|
|
492
|
+
}
|
|
493
|
+
};
|
|
488
494
|
const load = async (initialContent) => {
|
|
489
495
|
/* istanbul ignore else */
|
|
490
496
|
if (status != 2 /* Saving */) {
|
|
@@ -509,6 +515,7 @@ const createCustomPersister = (
|
|
|
509
515
|
},
|
|
510
516
|
);
|
|
511
517
|
setStatus(0 /* Idle */);
|
|
518
|
+
await saveAfterMutated();
|
|
512
519
|
});
|
|
513
520
|
}
|
|
514
521
|
return persister;
|
|
@@ -527,6 +534,7 @@ const createCustomPersister = (
|
|
|
527
534
|
loads++;
|
|
528
535
|
setContentOrChanges(changes ?? content);
|
|
529
536
|
setStatus(0 /* Idle */);
|
|
537
|
+
await saveAfterMutated();
|
|
530
538
|
}
|
|
531
539
|
} else {
|
|
532
540
|
await load();
|
|
@@ -64,17 +64,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
64
64
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
65
65
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
66
66
|
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
const map = Map;
|
|
68
|
+
const mapNew = (entries) => new map(entries);
|
|
69
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
70
|
+
const mapSet = (map2, key, value) =>
|
|
71
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
72
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
73
|
+
if (!collHas(map2, key)) {
|
|
74
|
+
mapSet(map2, key, getDefaultValue());
|
|
74
75
|
} else {
|
|
75
|
-
hadExistingValue?.(mapGet(
|
|
76
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
76
77
|
}
|
|
77
|
-
return mapGet(
|
|
78
|
+
return mapGet(map2, key);
|
|
78
79
|
};
|
|
79
80
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
80
81
|
ifNotUndefined(
|
|
@@ -276,6 +277,11 @@ const createCustomPersister = (
|
|
|
276
277
|
? store.applyChanges
|
|
277
278
|
: store.setContent)(contentOrChanges);
|
|
278
279
|
};
|
|
280
|
+
const saveAfterMutated = async () => {
|
|
281
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
282
|
+
await save();
|
|
283
|
+
}
|
|
284
|
+
};
|
|
279
285
|
const load = async (initialContent) => {
|
|
280
286
|
/* istanbul ignore else */
|
|
281
287
|
if (status != 2 /* Saving */) {
|
|
@@ -300,6 +306,7 @@ const createCustomPersister = (
|
|
|
300
306
|
},
|
|
301
307
|
);
|
|
302
308
|
setStatus(0 /* Idle */);
|
|
309
|
+
await saveAfterMutated();
|
|
303
310
|
});
|
|
304
311
|
}
|
|
305
312
|
return persister;
|
|
@@ -318,6 +325,7 @@ const createCustomPersister = (
|
|
|
318
325
|
loads++;
|
|
319
326
|
setContentOrChanges(changes ?? content);
|
|
320
327
|
setStatus(0 /* Idle */);
|
|
328
|
+
await saveAfterMutated();
|
|
321
329
|
}
|
|
322
330
|
} else {
|
|
323
331
|
await load();
|
|
@@ -64,17 +64,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
|
|
|
64
64
|
const collForEach = (coll, cb) => coll?.forEach(cb);
|
|
65
65
|
const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
66
66
|
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
const map = Map;
|
|
68
|
+
const mapNew = (entries) => new map(entries);
|
|
69
|
+
const mapGet = (map2, key) => map2?.get(key);
|
|
70
|
+
const mapSet = (map2, key, value) =>
|
|
71
|
+
isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
|
|
72
|
+
const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
|
|
73
|
+
if (!collHas(map2, key)) {
|
|
74
|
+
mapSet(map2, key, getDefaultValue());
|
|
74
75
|
} else {
|
|
75
|
-
hadExistingValue?.(mapGet(
|
|
76
|
+
hadExistingValue?.(mapGet(map2, key));
|
|
76
77
|
}
|
|
77
|
-
return mapGet(
|
|
78
|
+
return mapGet(map2, key);
|
|
78
79
|
};
|
|
79
80
|
const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
|
|
80
81
|
ifNotUndefined(
|
|
@@ -276,6 +277,11 @@ const createCustomPersister = (
|
|
|
276
277
|
? store.applyChanges
|
|
277
278
|
: store.setContent)(contentOrChanges);
|
|
278
279
|
};
|
|
280
|
+
const saveAfterMutated = async () => {
|
|
281
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
282
|
+
await save();
|
|
283
|
+
}
|
|
284
|
+
};
|
|
279
285
|
const load = async (initialContent) => {
|
|
280
286
|
/* istanbul ignore else */
|
|
281
287
|
if (status != 2 /* Saving */) {
|
|
@@ -300,6 +306,7 @@ const createCustomPersister = (
|
|
|
300
306
|
},
|
|
301
307
|
);
|
|
302
308
|
setStatus(0 /* Idle */);
|
|
309
|
+
await saveAfterMutated();
|
|
303
310
|
});
|
|
304
311
|
}
|
|
305
312
|
return persister;
|
|
@@ -318,6 +325,7 @@ const createCustomPersister = (
|
|
|
318
325
|
loads++;
|
|
319
326
|
setContentOrChanges(changes ?? content);
|
|
320
327
|
setStatus(0 /* Idle */);
|
|
328
|
+
await saveAfterMutated();
|
|
321
329
|
}
|
|
322
330
|
} else {
|
|
323
331
|
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(
|
|
@@ -485,6 +486,11 @@ const createCustomPersister = (
|
|
|
485
486
|
? store.applyChanges
|
|
486
487
|
: store.setContent)(contentOrChanges);
|
|
487
488
|
};
|
|
489
|
+
const saveAfterMutated = async () => {
|
|
490
|
+
if (isAutoSaving() && store.hadMutated?.()) {
|
|
491
|
+
await save();
|
|
492
|
+
}
|
|
493
|
+
};
|
|
488
494
|
const load = async (initialContent) => {
|
|
489
495
|
/* istanbul ignore else */
|
|
490
496
|
if (status != 2 /* Saving */) {
|
|
@@ -509,6 +515,7 @@ const createCustomPersister = (
|
|
|
509
515
|
},
|
|
510
516
|
);
|
|
511
517
|
setStatus(0 /* Idle */);
|
|
518
|
+
await saveAfterMutated();
|
|
512
519
|
});
|
|
513
520
|
}
|
|
514
521
|
return persister;
|
|
@@ -527,6 +534,7 @@ const createCustomPersister = (
|
|
|
527
534
|
loads++;
|
|
528
535
|
setContentOrChanges(changes ?? content);
|
|
529
536
|
setStatus(0 /* Idle */);
|
|
537
|
+
await saveAfterMutated();
|
|
530
538
|
}
|
|
531
539
|
} else {
|
|
532
540
|
await load();
|