tinybase 7.0.0-beta.2 → 7.0.0
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/common/index.d.ts +1 -1
- package/@types/mergeable-store/index.d.ts +1 -1
- package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +4 -0
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -0
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-pglite/index.d.ts +5 -1
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +5 -1
- package/@types/persisters/persister-postgres/index.d.ts +4 -0
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-react-native-sqlite/index.d.ts +4 -0
- package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-bun/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite3/index.d.ts +4 -0
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +1 -1
- package/@types/store/index.d.ts +21 -19
- package/@types/store/with-schemas/index.d.ts +15 -13
- package/agents.md +62 -0
- package/checkpoints/index.js +8 -6
- package/checkpoints/with-schemas/index.js +8 -6
- package/common/index.js +4 -3
- package/common/with-schemas/index.js +4 -3
- package/index.js +60 -30
- package/indexes/index.js +7 -5
- package/indexes/with-schemas/index.js +7 -5
- package/mergeable-store/index.js +51 -21
- package/mergeable-store/with-schemas/index.js +51 -21
- package/metrics/index.js +7 -5
- package/metrics/with-schemas/index.js +7 -5
- 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-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/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/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 +78 -46
- package/omni/with-schemas/index.js +78 -46
- package/package.json +3 -3
- package/persisters/index.js +14 -10
- package/persisters/persister-automerge/index.js +12 -8
- package/persisters/persister-automerge/with-schemas/index.js +12 -8
- package/persisters/persister-browser/index.js +12 -8
- package/persisters/persister-browser/with-schemas/index.js +12 -8
- package/persisters/persister-cr-sqlite-wasm/index.js +14 -10
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +14 -10
- package/persisters/persister-durable-object-sql-storage/index.js +14 -10
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +14 -10
- package/persisters/persister-durable-object-storage/index.js +12 -8
- package/persisters/persister-durable-object-storage/with-schemas/index.js +12 -8
- package/persisters/persister-electric-sql/index.js +14 -10
- package/persisters/persister-electric-sql/with-schemas/index.js +14 -10
- package/persisters/persister-expo-sqlite/index.js +14 -10
- package/persisters/persister-expo-sqlite/with-schemas/index.js +14 -10
- package/persisters/persister-file/index.js +12 -8
- package/persisters/persister-file/with-schemas/index.js +12 -8
- package/persisters/persister-indexed-db/index.js +12 -8
- package/persisters/persister-indexed-db/with-schemas/index.js +12 -8
- package/persisters/persister-libsql/index.js +14 -10
- package/persisters/persister-libsql/with-schemas/index.js +14 -10
- package/persisters/persister-partykit-client/index.js +12 -8
- package/persisters/persister-partykit-client/with-schemas/index.js +12 -8
- package/persisters/persister-partykit-server/index.js +4 -3
- package/persisters/persister-partykit-server/with-schemas/index.js +4 -3
- package/persisters/persister-pglite/index.js +13 -9
- package/persisters/persister-pglite/with-schemas/index.js +13 -9
- package/persisters/persister-postgres/index.js +13 -9
- package/persisters/persister-postgres/with-schemas/index.js +13 -9
- package/persisters/persister-powersync/index.js +14 -10
- package/persisters/persister-powersync/with-schemas/index.js +14 -10
- package/persisters/persister-react-native-mmkv/index.js +12 -8
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +12 -8
- package/persisters/persister-react-native-sqlite/index.js +14 -10
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +14 -10
- package/persisters/persister-remote/index.js +14 -10
- package/persisters/persister-remote/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite-bun/index.js +14 -10
- package/persisters/persister-sqlite-bun/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite-wasm/index.js +14 -10
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +14 -10
- package/persisters/persister-sqlite3/index.js +14 -10
- package/persisters/persister-sqlite3/with-schemas/index.js +14 -10
- package/persisters/persister-yjs/index.js +18 -12
- package/persisters/persister-yjs/with-schemas/index.js +18 -12
- package/persisters/with-schemas/index.js +14 -10
- package/queries/index.js +17 -12
- package/queries/with-schemas/index.js +17 -12
- package/readme.md +2 -2
- package/relationships/index.js +7 -5
- package/relationships/with-schemas/index.js +7 -5
- package/releases.md +100 -12
- package/store/index.js +48 -18
- package/store/with-schemas/index.js +48 -18
- package/synchronizers/index.js +13 -9
- package/synchronizers/synchronizer-broadcast-channel/index.js +14 -10
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +14 -10
- package/synchronizers/synchronizer-local/index.js +14 -10
- package/synchronizers/synchronizer-local/with-schemas/index.js +14 -10
- package/synchronizers/synchronizer-ws-client/index.js +13 -9
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server/index.js +13 -9
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +13 -9
- package/synchronizers/synchronizer-ws-server-simple/index.js +5 -4
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +5 -4
- package/synchronizers/with-schemas/index.js +13 -9
- package/ui-react/index.js +9 -6
- package/ui-react/with-schemas/index.js +9 -6
- package/ui-react-dom/index.js +14 -7
- package/ui-react-dom/with-schemas/index.js +14 -7
- package/ui-react-inspector/index.js +53 -23
- package/ui-react-inspector/with-schemas/index.js +53 -23
- package/with-schemas/index.js +60 -30
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
2
|
|
|
3
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
4
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
3
5
|
const THOUSAND = 1e3;
|
|
4
6
|
const startInterval = (callback, sec, immediate) => {
|
|
5
7
|
return setInterval(callback, sec * THOUSAND);
|
|
6
8
|
};
|
|
7
9
|
const stopInterval = clearInterval;
|
|
8
10
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
11
|
+
const isNullish = (thing) => thing == null;
|
|
12
|
+
const isUndefined = (thing) => thing === void 0;
|
|
13
|
+
const isNull = (thing) => thing === null;
|
|
14
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
15
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
12
16
|
const isArray = (thing) => Array.isArray(thing);
|
|
13
17
|
const size = (arrayOrString) => arrayOrString.length;
|
|
14
18
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -32,12 +36,12 @@ const arrayShift = (array) => array.shift();
|
|
|
32
36
|
const object = Object;
|
|
33
37
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
34
38
|
const isObject = (obj) =>
|
|
35
|
-
!
|
|
36
|
-
|
|
39
|
+
!isNullish(obj) &&
|
|
40
|
+
ifNotNullish(
|
|
37
41
|
getPrototypeOf(obj),
|
|
38
42
|
(objPrototype) =>
|
|
39
43
|
objPrototype == object.prototype ||
|
|
40
|
-
|
|
44
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
41
45
|
|
|
42
46
|
/* istanbul ignore next */
|
|
43
47
|
() => true,
|
|
@@ -63,7 +67,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
63
67
|
const mapNew = (entries) => new Map(entries);
|
|
64
68
|
const mapGet = (map, key) => map?.get(key);
|
|
65
69
|
const mapSet = (map, key, value) =>
|
|
66
|
-
|
|
70
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
67
71
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
68
72
|
if (!collHas(map, key)) {
|
|
69
73
|
mapSet(map, key, getDefaultValue());
|
|
@@ -174,7 +178,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
174
178
|
const index = size(ids);
|
|
175
179
|
if (index == size(path)) {
|
|
176
180
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
177
|
-
} else if (
|
|
181
|
+
} else if (isNull(path[index])) {
|
|
178
182
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
179
183
|
callWithIds(...ids, id2),
|
|
180
184
|
);
|
|
@@ -451,8 +455,8 @@ const createRemotePersister = (
|
|
|
451
455
|
const response = await fetch(loadUrl, {method: 'HEAD'});
|
|
452
456
|
const currentEtag = getETag(response);
|
|
453
457
|
if (
|
|
454
|
-
!
|
|
455
|
-
!
|
|
458
|
+
!isNull(lastEtag) &&
|
|
459
|
+
!isNull(currentEtag) &&
|
|
456
460
|
currentEtag != lastEtag
|
|
457
461
|
) {
|
|
458
462
|
lastEtag = currentEtag;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +106,12 @@ const object = Object;
|
|
|
102
106
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
107
|
const objEntries = object.entries;
|
|
104
108
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
109
|
+
!isNullish(obj) &&
|
|
110
|
+
ifNotNullish(
|
|
107
111
|
getPrototypeOf(obj),
|
|
108
112
|
(objPrototype) =>
|
|
109
113
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
114
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
115
|
|
|
112
116
|
/* istanbul ignore next */
|
|
113
117
|
() => true,
|
|
@@ -136,7 +140,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
140
|
const mapMap = (coll, cb) =>
|
|
137
141
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
142
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
143
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
144
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
145
|
if (!collHas(map, key)) {
|
|
142
146
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +227,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
227
|
0,
|
|
224
228
|
objSize(defaultObj),
|
|
225
229
|
);
|
|
226
|
-
if (!
|
|
230
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
231
|
then(id, defaultedConfig[0]);
|
|
228
232
|
mapSet(configMap, id, defaultedConfig);
|
|
229
233
|
}
|
|
@@ -372,7 +376,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
376
|
const index = size(ids);
|
|
373
377
|
if (index == size(path)) {
|
|
374
378
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
379
|
+
} else if (isNull(path[index])) {
|
|
376
380
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
381
|
callWithIds(...ids, id2),
|
|
378
382
|
);
|
|
@@ -1117,7 +1121,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1121
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1122
|
);
|
|
1119
1123
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1124
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1125
|
listener();
|
|
1122
1126
|
}
|
|
1123
1127
|
dataVersion = d;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +106,12 @@ const object = Object;
|
|
|
102
106
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
107
|
const objEntries = object.entries;
|
|
104
108
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
109
|
+
!isNullish(obj) &&
|
|
110
|
+
ifNotNullish(
|
|
107
111
|
getPrototypeOf(obj),
|
|
108
112
|
(objPrototype) =>
|
|
109
113
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
114
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
115
|
|
|
112
116
|
/* istanbul ignore next */
|
|
113
117
|
() => true,
|
|
@@ -136,7 +140,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
140
|
const mapMap = (coll, cb) =>
|
|
137
141
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
142
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
143
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
144
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
145
|
if (!collHas(map, key)) {
|
|
142
146
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +227,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
227
|
0,
|
|
224
228
|
objSize(defaultObj),
|
|
225
229
|
);
|
|
226
|
-
if (!
|
|
230
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
231
|
then(id, defaultedConfig[0]);
|
|
228
232
|
mapSet(configMap, id, defaultedConfig);
|
|
229
233
|
}
|
|
@@ -372,7 +376,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
376
|
const index = size(ids);
|
|
373
377
|
if (index == size(path)) {
|
|
374
378
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
379
|
+
} else if (isNull(path[index])) {
|
|
376
380
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
381
|
callWithIds(...ids, id2),
|
|
378
382
|
);
|
|
@@ -1117,7 +1121,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1121
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1122
|
);
|
|
1119
1123
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1124
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1125
|
listener();
|
|
1122
1126
|
}
|
|
1123
1127
|
dataVersion = d;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +106,12 @@ const object = Object;
|
|
|
102
106
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
107
|
const objEntries = object.entries;
|
|
104
108
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
109
|
+
!isNullish(obj) &&
|
|
110
|
+
ifNotNullish(
|
|
107
111
|
getPrototypeOf(obj),
|
|
108
112
|
(objPrototype) =>
|
|
109
113
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
114
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
115
|
|
|
112
116
|
/* istanbul ignore next */
|
|
113
117
|
() => true,
|
|
@@ -136,7 +140,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
140
|
const mapMap = (coll, cb) =>
|
|
137
141
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
142
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
143
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
144
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
145
|
if (!collHas(map, key)) {
|
|
142
146
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +227,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
227
|
0,
|
|
224
228
|
objSize(defaultObj),
|
|
225
229
|
);
|
|
226
|
-
if (!
|
|
230
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
231
|
then(id, defaultedConfig[0]);
|
|
228
232
|
mapSet(configMap, id, defaultedConfig);
|
|
229
233
|
}
|
|
@@ -372,7 +376,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
376
|
const index = size(ids);
|
|
373
377
|
if (index == size(path)) {
|
|
374
378
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
379
|
+
} else if (isNull(path[index])) {
|
|
376
380
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
381
|
callWithIds(...ids, id2),
|
|
378
382
|
);
|
|
@@ -1117,7 +1121,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1121
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1122
|
);
|
|
1119
1123
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1124
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1125
|
listener();
|
|
1122
1126
|
}
|
|
1123
1127
|
dataVersion = d;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +106,12 @@ const object = Object;
|
|
|
102
106
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
107
|
const objEntries = object.entries;
|
|
104
108
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
109
|
+
!isNullish(obj) &&
|
|
110
|
+
ifNotNullish(
|
|
107
111
|
getPrototypeOf(obj),
|
|
108
112
|
(objPrototype) =>
|
|
109
113
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
114
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
115
|
|
|
112
116
|
/* istanbul ignore next */
|
|
113
117
|
() => true,
|
|
@@ -136,7 +140,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
140
|
const mapMap = (coll, cb) =>
|
|
137
141
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
142
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
143
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
144
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
145
|
if (!collHas(map, key)) {
|
|
142
146
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +227,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
227
|
0,
|
|
224
228
|
objSize(defaultObj),
|
|
225
229
|
);
|
|
226
|
-
if (!
|
|
230
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
231
|
then(id, defaultedConfig[0]);
|
|
228
232
|
mapSet(configMap, id, defaultedConfig);
|
|
229
233
|
}
|
|
@@ -372,7 +376,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
376
|
const index = size(ids);
|
|
373
377
|
if (index == size(path)) {
|
|
374
378
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
379
|
+
} else if (isNull(path[index])) {
|
|
376
380
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
381
|
callWithIds(...ids, id2),
|
|
378
382
|
);
|
|
@@ -1117,7 +1121,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1121
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1122
|
);
|
|
1119
1123
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1124
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1125
|
listener();
|
|
1122
1126
|
}
|
|
1123
1127
|
dataVersion = d;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -103,12 +107,12 @@ const object = Object;
|
|
|
103
107
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
104
108
|
const objEntries = object.entries;
|
|
105
109
|
const isObject = (obj) =>
|
|
106
|
-
!
|
|
107
|
-
|
|
110
|
+
!isNullish(obj) &&
|
|
111
|
+
ifNotNullish(
|
|
108
112
|
getPrototypeOf(obj),
|
|
109
113
|
(objPrototype) =>
|
|
110
114
|
objPrototype == object.prototype ||
|
|
111
|
-
|
|
115
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
112
116
|
|
|
113
117
|
/* istanbul ignore next */
|
|
114
118
|
() => true,
|
|
@@ -137,7 +141,7 @@ const mapForEach = (map, cb) =>
|
|
|
137
141
|
const mapMap = (coll, cb) =>
|
|
138
142
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
139
143
|
const mapSet = (map, key, value) =>
|
|
140
|
-
|
|
144
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
141
145
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
142
146
|
if (!collHas(map, key)) {
|
|
143
147
|
mapSet(map, key, getDefaultValue());
|
|
@@ -224,7 +228,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
224
228
|
0,
|
|
225
229
|
objSize(defaultObj),
|
|
226
230
|
);
|
|
227
|
-
if (!
|
|
231
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
228
232
|
then(id, defaultedConfig[0]);
|
|
229
233
|
mapSet(configMap, id, defaultedConfig);
|
|
230
234
|
}
|
|
@@ -373,7 +377,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
373
377
|
const index = size(ids);
|
|
374
378
|
if (index == size(path)) {
|
|
375
379
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
376
|
-
} else if (
|
|
380
|
+
} else if (isNull(path[index])) {
|
|
377
381
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
378
382
|
callWithIds(...ids, id2),
|
|
379
383
|
);
|
|
@@ -1118,7 +1122,7 @@ const createCustomSqlitePersister = (
|
|
|
1118
1122
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1119
1123
|
);
|
|
1120
1124
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1121
|
-
if (dataVersion
|
|
1125
|
+
if (!isNullish(dataVersion)) {
|
|
1122
1126
|
listener();
|
|
1123
1127
|
}
|
|
1124
1128
|
dataVersion = d;
|
|
@@ -12,14 +12,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
16
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
17
|
const THOUSAND = 1e3;
|
|
16
18
|
const startInterval = (callback, sec, immediate) => {
|
|
17
19
|
return setInterval(callback, sec * THOUSAND);
|
|
18
20
|
};
|
|
19
21
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const isNullish = (thing) => thing == null;
|
|
23
|
+
const isUndefined = (thing) => thing === void 0;
|
|
24
|
+
const isNull = (thing) => thing === null;
|
|
25
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
23
27
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
28
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
29
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -103,12 +107,12 @@ const object = Object;
|
|
|
103
107
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
104
108
|
const objEntries = object.entries;
|
|
105
109
|
const isObject = (obj) =>
|
|
106
|
-
!
|
|
107
|
-
|
|
110
|
+
!isNullish(obj) &&
|
|
111
|
+
ifNotNullish(
|
|
108
112
|
getPrototypeOf(obj),
|
|
109
113
|
(objPrototype) =>
|
|
110
114
|
objPrototype == object.prototype ||
|
|
111
|
-
|
|
115
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
112
116
|
|
|
113
117
|
/* istanbul ignore next */
|
|
114
118
|
() => true,
|
|
@@ -137,7 +141,7 @@ const mapForEach = (map, cb) =>
|
|
|
137
141
|
const mapMap = (coll, cb) =>
|
|
138
142
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
139
143
|
const mapSet = (map, key, value) =>
|
|
140
|
-
|
|
144
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
141
145
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
142
146
|
if (!collHas(map, key)) {
|
|
143
147
|
mapSet(map, key, getDefaultValue());
|
|
@@ -224,7 +228,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
224
228
|
0,
|
|
225
229
|
objSize(defaultObj),
|
|
226
230
|
);
|
|
227
|
-
if (!
|
|
231
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
228
232
|
then(id, defaultedConfig[0]);
|
|
229
233
|
mapSet(configMap, id, defaultedConfig);
|
|
230
234
|
}
|
|
@@ -373,7 +377,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
373
377
|
const index = size(ids);
|
|
374
378
|
if (index == size(path)) {
|
|
375
379
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
376
|
-
} else if (
|
|
380
|
+
} else if (isNull(path[index])) {
|
|
377
381
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
378
382
|
callWithIds(...ids, id2),
|
|
379
383
|
);
|
|
@@ -1118,7 +1122,7 @@ const createCustomSqlitePersister = (
|
|
|
1118
1122
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1119
1123
|
);
|
|
1120
1124
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1121
|
-
if (dataVersion
|
|
1125
|
+
if (!isNullish(dataVersion)) {
|
|
1122
1126
|
listener();
|
|
1123
1127
|
}
|
|
1124
1128
|
dataVersion = d;
|
|
@@ -5,9 +5,13 @@ const EMPTY_STRING = '';
|
|
|
5
5
|
const T = 't';
|
|
6
6
|
const V = 'v';
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
9
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
10
|
+
const isNullish = (thing) => thing == null;
|
|
11
|
+
const isUndefined = (thing) => thing === void 0;
|
|
12
|
+
const isNull = (thing) => thing === null;
|
|
13
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
14
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
11
15
|
const isArray = (thing) => Array.isArray(thing);
|
|
12
16
|
const size = (arrayOrString) => arrayOrString.length;
|
|
13
17
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -40,12 +44,12 @@ const object = Object;
|
|
|
40
44
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
41
45
|
const objEntries = object.entries;
|
|
42
46
|
const isObject = (obj) =>
|
|
43
|
-
!
|
|
44
|
-
|
|
47
|
+
!isNullish(obj) &&
|
|
48
|
+
ifNotNullish(
|
|
45
49
|
getPrototypeOf(obj),
|
|
46
50
|
(objPrototype) =>
|
|
47
51
|
objPrototype == object.prototype ||
|
|
48
|
-
|
|
52
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
49
53
|
|
|
50
54
|
/* istanbul ignore next */
|
|
51
55
|
() => true,
|
|
@@ -72,7 +76,7 @@ const mapGet = (map, key) => map?.get(key);
|
|
|
72
76
|
const mapForEach = (map, cb) =>
|
|
73
77
|
collForEach(map, (value, key) => cb(key, value));
|
|
74
78
|
const mapSet = (map, key, value) =>
|
|
75
|
-
|
|
79
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
76
80
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
77
81
|
if (!collHas(map, key)) {
|
|
78
82
|
mapSet(map, key, getDefaultValue());
|
|
@@ -183,7 +187,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
183
187
|
const index = size(ids);
|
|
184
188
|
if (index == size(path)) {
|
|
185
189
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
186
|
-
} else if (
|
|
190
|
+
} else if (isNull(path[index])) {
|
|
187
191
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
188
192
|
callWithIds(...ids, id2),
|
|
189
193
|
);
|
|
@@ -459,7 +463,8 @@ const getChangesFromYDoc = (yContent, events) => {
|
|
|
459
463
|
mapForEach(
|
|
460
464
|
keys,
|
|
461
465
|
(cellId, {action}) =>
|
|
462
|
-
(row[cellId] =
|
|
466
|
+
(row[cellId] =
|
|
467
|
+
action == DELETE ? void 0 : yRow.get(cellId)),
|
|
463
468
|
);
|
|
464
469
|
},
|
|
465
470
|
() =>
|
|
@@ -467,7 +472,7 @@ const getChangesFromYDoc = (yContent, events) => {
|
|
|
467
472
|
keys,
|
|
468
473
|
(rowId, {action}) =>
|
|
469
474
|
(table[rowId] =
|
|
470
|
-
action == DELETE ?
|
|
475
|
+
action == DELETE ? void 0 : yTable.get(rowId)?.toJSON()),
|
|
471
476
|
),
|
|
472
477
|
);
|
|
473
478
|
},
|
|
@@ -476,13 +481,14 @@ const getChangesFromYDoc = (yContent, events) => {
|
|
|
476
481
|
keys,
|
|
477
482
|
(tableId, {action}) =>
|
|
478
483
|
(tables[tableId] =
|
|
479
|
-
action == DELETE ?
|
|
484
|
+
action == DELETE ? void 0 : yTables.get(tableId)?.toJSON()),
|
|
480
485
|
),
|
|
481
486
|
)
|
|
482
487
|
: mapForEach(
|
|
483
488
|
keys,
|
|
484
489
|
(valueId, {action}) =>
|
|
485
|
-
(values[valueId] =
|
|
490
|
+
(values[valueId] =
|
|
491
|
+
action == DELETE ? void 0 : yValues.get(valueId)),
|
|
486
492
|
),
|
|
487
493
|
);
|
|
488
494
|
return [tables, values, 1];
|