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
|
@@ -14,14 +14,18 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
14
14
|
str.replace(searchValue, replaceValue);
|
|
15
15
|
|
|
16
16
|
const promise = Promise;
|
|
17
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
18
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
17
19
|
const THOUSAND = 1e3;
|
|
18
20
|
const startInterval = (callback, sec, immediate) => {
|
|
19
21
|
return setInterval(callback, sec * THOUSAND);
|
|
20
22
|
};
|
|
21
23
|
const stopInterval = clearInterval;
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
24
|
+
const isNullish = (thing) => thing == null;
|
|
25
|
+
const isUndefined = (thing) => thing === void 0;
|
|
26
|
+
const isNull = (thing) => thing === null;
|
|
27
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
28
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
25
29
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
26
30
|
const isArray = (thing) => Array.isArray(thing);
|
|
27
31
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -104,12 +108,12 @@ const object = Object;
|
|
|
104
108
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
105
109
|
const objEntries = object.entries;
|
|
106
110
|
const isObject = (obj) =>
|
|
107
|
-
!
|
|
108
|
-
|
|
111
|
+
!isNullish(obj) &&
|
|
112
|
+
ifNotNullish(
|
|
109
113
|
getPrototypeOf(obj),
|
|
110
114
|
(objPrototype) =>
|
|
111
115
|
objPrototype == object.prototype ||
|
|
112
|
-
|
|
116
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
113
117
|
|
|
114
118
|
/* istanbul ignore next */
|
|
115
119
|
() => true,
|
|
@@ -138,7 +142,7 @@ const mapForEach = (map, cb) =>
|
|
|
138
142
|
const mapMap = (coll, cb) =>
|
|
139
143
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
140
144
|
const mapSet = (map, key, value) =>
|
|
141
|
-
|
|
145
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
142
146
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
143
147
|
if (!collHas(map, key)) {
|
|
144
148
|
mapSet(map, key, getDefaultValue());
|
|
@@ -225,7 +229,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
225
229
|
0,
|
|
226
230
|
objSize(defaultObj),
|
|
227
231
|
);
|
|
228
|
-
if (!
|
|
232
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
229
233
|
then(id, defaultedConfig[0]);
|
|
230
234
|
mapSet(configMap, id, defaultedConfig);
|
|
231
235
|
}
|
|
@@ -374,7 +378,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
374
378
|
const index = size(ids);
|
|
375
379
|
if (index == size(path)) {
|
|
376
380
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
377
|
-
} else if (
|
|
381
|
+
} else if (isNull(path[index])) {
|
|
378
382
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
379
383
|
callWithIds(...ids, id2),
|
|
380
384
|
);
|
|
@@ -1119,7 +1123,7 @@ const createCustomSqlitePersister = (
|
|
|
1119
1123
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1120
1124
|
);
|
|
1121
1125
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1122
|
-
if (dataVersion
|
|
1126
|
+
if (!isNullish(dataVersion)) {
|
|
1123
1127
|
listener();
|
|
1124
1128
|
}
|
|
1125
1129
|
dataVersion = d;
|
|
@@ -5,9 +5,13 @@ const EMPTY_STRING = '';
|
|
|
5
5
|
const UTF8 = 'utf8';
|
|
6
6
|
const UNDEFINED = '\uFFFC';
|
|
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);
|
|
@@ -31,12 +35,12 @@ const arrayShift = (array) => array.shift();
|
|
|
31
35
|
const object = Object;
|
|
32
36
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
33
37
|
const isObject = (obj) =>
|
|
34
|
-
!
|
|
35
|
-
|
|
38
|
+
!isNullish(obj) &&
|
|
39
|
+
ifNotNullish(
|
|
36
40
|
getPrototypeOf(obj),
|
|
37
41
|
(objPrototype) =>
|
|
38
42
|
objPrototype == object.prototype ||
|
|
39
|
-
|
|
43
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
40
44
|
|
|
41
45
|
/* istanbul ignore next */
|
|
42
46
|
() => true,
|
|
@@ -62,7 +66,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
62
66
|
const mapNew = (entries) => new Map(entries);
|
|
63
67
|
const mapGet = (map, key) => map?.get(key);
|
|
64
68
|
const mapSet = (map, key, value) =>
|
|
65
|
-
|
|
69
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
66
70
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
67
71
|
if (!collHas(map, key)) {
|
|
68
72
|
mapSet(map, key, getDefaultValue());
|
|
@@ -173,7 +177,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
173
177
|
const index = size(ids);
|
|
174
178
|
if (index == size(path)) {
|
|
175
179
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
176
|
-
} else if (
|
|
180
|
+
} else if (isNull(path[index])) {
|
|
177
181
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
178
182
|
callWithIds(...ids, id2),
|
|
179
183
|
);
|
|
@@ -5,9 +5,13 @@ const EMPTY_STRING = '';
|
|
|
5
5
|
const UTF8 = 'utf8';
|
|
6
6
|
const UNDEFINED = '\uFFFC';
|
|
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);
|
|
@@ -31,12 +35,12 @@ const arrayShift = (array) => array.shift();
|
|
|
31
35
|
const object = Object;
|
|
32
36
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
33
37
|
const isObject = (obj) =>
|
|
34
|
-
!
|
|
35
|
-
|
|
38
|
+
!isNullish(obj) &&
|
|
39
|
+
ifNotNullish(
|
|
36
40
|
getPrototypeOf(obj),
|
|
37
41
|
(objPrototype) =>
|
|
38
42
|
objPrototype == object.prototype ||
|
|
39
|
-
|
|
43
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
40
44
|
|
|
41
45
|
/* istanbul ignore next */
|
|
42
46
|
() => true,
|
|
@@ -62,7 +66,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
62
66
|
const mapNew = (entries) => new Map(entries);
|
|
63
67
|
const mapGet = (map, key) => map?.get(key);
|
|
64
68
|
const mapSet = (map, key, value) =>
|
|
65
|
-
|
|
69
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
66
70
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
67
71
|
if (!collHas(map, key)) {
|
|
68
72
|
mapSet(map, key, getDefaultValue());
|
|
@@ -173,7 +177,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
173
177
|
const index = size(ids);
|
|
174
178
|
if (index == size(path)) {
|
|
175
179
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
176
|
-
} else if (
|
|
180
|
+
} else if (isNull(path[index])) {
|
|
177
181
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
178
182
|
callWithIds(...ids, id2),
|
|
179
183
|
);
|
|
@@ -3,6 +3,8 @@ const T = 't';
|
|
|
3
3
|
const V = 'v';
|
|
4
4
|
|
|
5
5
|
const promise = Promise;
|
|
6
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
7
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
6
8
|
const GLOBAL = globalThis;
|
|
7
9
|
const WINDOW = GLOBAL.window;
|
|
8
10
|
const THOUSAND = 1e3;
|
|
@@ -10,9 +12,11 @@ const startInterval = (callback, sec, immediate) => {
|
|
|
10
12
|
return setInterval(callback, sec * THOUSAND);
|
|
11
13
|
};
|
|
12
14
|
const stopInterval = clearInterval;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
15
|
+
const isNullish = (thing) => thing == null;
|
|
16
|
+
const isUndefined = (thing) => thing === void 0;
|
|
17
|
+
const isNull = (thing) => thing === null;
|
|
18
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
19
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
16
20
|
const isArray = (thing) => Array.isArray(thing);
|
|
17
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
18
22
|
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,
|
|
@@ -68,7 +72,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
68
72
|
const mapNew = (entries) => new Map(entries);
|
|
69
73
|
const mapGet = (map, key) => map?.get(key);
|
|
70
74
|
const mapSet = (map, key, value) =>
|
|
71
|
-
|
|
75
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
72
76
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
73
77
|
if (!collHas(map, key)) {
|
|
74
78
|
mapSet(map, key, getDefaultValue());
|
|
@@ -179,7 +183,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
179
183
|
const index = size(ids);
|
|
180
184
|
if (index == size(path)) {
|
|
181
185
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
182
|
-
} else if (
|
|
186
|
+
} else if (isNull(path[index])) {
|
|
183
187
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
184
188
|
callWithIds(...ids, id2),
|
|
185
189
|
);
|
|
@@ -3,6 +3,8 @@ const T = 't';
|
|
|
3
3
|
const V = 'v';
|
|
4
4
|
|
|
5
5
|
const promise = Promise;
|
|
6
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
7
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
6
8
|
const GLOBAL = globalThis;
|
|
7
9
|
const WINDOW = GLOBAL.window;
|
|
8
10
|
const THOUSAND = 1e3;
|
|
@@ -10,9 +12,11 @@ const startInterval = (callback, sec, immediate) => {
|
|
|
10
12
|
return setInterval(callback, sec * THOUSAND);
|
|
11
13
|
};
|
|
12
14
|
const stopInterval = clearInterval;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
15
|
+
const isNullish = (thing) => thing == null;
|
|
16
|
+
const isUndefined = (thing) => thing === void 0;
|
|
17
|
+
const isNull = (thing) => thing === null;
|
|
18
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
19
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
16
20
|
const isArray = (thing) => Array.isArray(thing);
|
|
17
21
|
const size = (arrayOrString) => arrayOrString.length;
|
|
18
22
|
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,
|
|
@@ -68,7 +72,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
68
72
|
const mapNew = (entries) => new Map(entries);
|
|
69
73
|
const mapGet = (map, key) => map?.get(key);
|
|
70
74
|
const mapSet = (map, key, value) =>
|
|
71
|
-
|
|
75
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
72
76
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
73
77
|
if (!collHas(map, key)) {
|
|
74
78
|
mapSet(map, key, getDefaultValue());
|
|
@@ -179,7 +183,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
179
183
|
const index = size(ids);
|
|
180
184
|
if (index == size(path)) {
|
|
181
185
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
182
|
-
} else if (
|
|
186
|
+
} else if (isNull(path[index])) {
|
|
183
187
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
184
188
|
callWithIds(...ids, id2),
|
|
185
189
|
);
|
|
@@ -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;
|
|
@@ -4,10 +4,14 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
4
4
|
const MESSAGE = 'message';
|
|
5
5
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
6
6
|
|
|
7
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
8
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
7
9
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
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 isString = (thing) => getTypeOf(thing) == STRING;
|
|
12
16
|
const isArray = (thing) => Array.isArray(thing);
|
|
13
17
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -33,12 +37,12 @@ const arrayShift = (array) => array.shift();
|
|
|
33
37
|
const object = Object;
|
|
34
38
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
35
39
|
const isObject = (obj) =>
|
|
36
|
-
!
|
|
37
|
-
|
|
40
|
+
!isNullish(obj) &&
|
|
41
|
+
ifNotNullish(
|
|
38
42
|
getPrototypeOf(obj),
|
|
39
43
|
(objPrototype) =>
|
|
40
44
|
objPrototype == object.prototype ||
|
|
41
|
-
|
|
45
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
42
46
|
|
|
43
47
|
/* istanbul ignore next */
|
|
44
48
|
() => true,
|
|
@@ -64,7 +68,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
64
68
|
const mapNew = (entries) => new Map(entries);
|
|
65
69
|
const mapGet = (map, key) => map?.get(key);
|
|
66
70
|
const mapSet = (map, key, value) =>
|
|
67
|
-
|
|
71
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
68
72
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
69
73
|
if (!collHas(map, key)) {
|
|
70
74
|
mapSet(map, key, getDefaultValue());
|
|
@@ -175,7 +179,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
175
179
|
const index = size(ids);
|
|
176
180
|
if (index == size(path)) {
|
|
177
181
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
178
|
-
} else if (
|
|
182
|
+
} else if (isNull(path[index])) {
|
|
179
183
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
180
184
|
callWithIds(...ids, id2),
|
|
181
185
|
);
|
|
@@ -4,10 +4,14 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
4
4
|
const MESSAGE = 'message';
|
|
5
5
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
6
6
|
|
|
7
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
8
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
7
9
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
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 isString = (thing) => getTypeOf(thing) == STRING;
|
|
12
16
|
const isArray = (thing) => Array.isArray(thing);
|
|
13
17
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -33,12 +37,12 @@ const arrayShift = (array) => array.shift();
|
|
|
33
37
|
const object = Object;
|
|
34
38
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
35
39
|
const isObject = (obj) =>
|
|
36
|
-
!
|
|
37
|
-
|
|
40
|
+
!isNullish(obj) &&
|
|
41
|
+
ifNotNullish(
|
|
38
42
|
getPrototypeOf(obj),
|
|
39
43
|
(objPrototype) =>
|
|
40
44
|
objPrototype == object.prototype ||
|
|
41
|
-
|
|
45
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
42
46
|
|
|
43
47
|
/* istanbul ignore next */
|
|
44
48
|
() => true,
|
|
@@ -64,7 +68,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
64
68
|
const mapNew = (entries) => new Map(entries);
|
|
65
69
|
const mapGet = (map, key) => map?.get(key);
|
|
66
70
|
const mapSet = (map, key, value) =>
|
|
67
|
-
|
|
71
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
68
72
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
69
73
|
if (!collHas(map, key)) {
|
|
70
74
|
mapSet(map, key, getDefaultValue());
|
|
@@ -175,7 +179,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
175
179
|
const index = size(ids);
|
|
176
180
|
if (index == size(path)) {
|
|
177
181
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
178
|
-
} else if (
|
|
182
|
+
} else if (isNull(path[index])) {
|
|
179
183
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
180
184
|
callWithIds(...ids, id2),
|
|
181
185
|
);
|
|
@@ -6,10 +6,11 @@ const V = 'v';
|
|
|
6
6
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
7
7
|
|
|
8
8
|
const promise = Promise;
|
|
9
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
10
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
9
11
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
10
|
-
const isUndefined = (thing) => thing
|
|
11
|
-
const ifNotUndefined = (
|
|
12
|
-
isUndefined(value) ? otherwise?.() : then(value);
|
|
12
|
+
const isUndefined = (thing) => thing === void 0;
|
|
13
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
13
14
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
14
15
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
15
16
|
const size = (arrayOrString) => arrayOrString.length;
|
|
@@ -6,10 +6,11 @@ const V = 'v';
|
|
|
6
6
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
7
7
|
|
|
8
8
|
const promise = Promise;
|
|
9
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
10
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
9
11
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
10
|
-
const isUndefined = (thing) => thing
|
|
11
|
-
const ifNotUndefined = (
|
|
12
|
-
isUndefined(value) ? otherwise?.() : then(value);
|
|
12
|
+
const isUndefined = (thing) => thing === void 0;
|
|
13
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
13
14
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
14
15
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
15
16
|
const size = (arrayOrString) => arrayOrString.length;
|
|
@@ -13,10 +13,14 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
13
13
|
str.replace(searchValue, replaceValue);
|
|
14
14
|
|
|
15
15
|
const promise = Promise;
|
|
16
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
17
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
16
18
|
const GLOBAL = globalThis;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const isNullish = (thing) => thing == null;
|
|
20
|
+
const isUndefined = (thing) => thing === void 0;
|
|
21
|
+
const isNull = (thing) => thing === null;
|
|
22
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
23
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
20
24
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
21
25
|
const isArray = (thing) => Array.isArray(thing);
|
|
22
26
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -57,12 +61,12 @@ const object = Object;
|
|
|
57
61
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
58
62
|
const objEntries = object.entries;
|
|
59
63
|
const isObject = (obj) =>
|
|
60
|
-
!
|
|
61
|
-
|
|
64
|
+
!isNullish(obj) &&
|
|
65
|
+
ifNotNullish(
|
|
62
66
|
getPrototypeOf(obj),
|
|
63
67
|
(objPrototype) =>
|
|
64
68
|
objPrototype == object.prototype ||
|
|
65
|
-
|
|
69
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
66
70
|
|
|
67
71
|
/* istanbul ignore next */
|
|
68
72
|
() => true,
|
|
@@ -109,7 +113,7 @@ const mapForEach = (map, cb) =>
|
|
|
109
113
|
const mapMap = (coll, cb) =>
|
|
110
114
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
111
115
|
const mapSet = (map, key, value) =>
|
|
112
|
-
|
|
116
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
113
117
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
114
118
|
if (!collHas(map, key)) {
|
|
115
119
|
mapSet(map, key, getDefaultValue());
|
|
@@ -237,7 +241,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
237
241
|
0,
|
|
238
242
|
objSize(defaultObj),
|
|
239
243
|
);
|
|
240
|
-
if (!
|
|
244
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
241
245
|
then(id, defaultedConfig[0]);
|
|
242
246
|
mapSet(configMap, id, defaultedConfig);
|
|
243
247
|
}
|
|
@@ -379,7 +383,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
379
383
|
const index = size(ids);
|
|
380
384
|
if (index == size(path)) {
|
|
381
385
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
382
|
-
} else if (
|
|
386
|
+
} else if (isNull(path[index])) {
|
|
383
387
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
384
388
|
callWithIds(...ids, id2),
|
|
385
389
|
);
|