tinybase 7.0.0-beta.1 → 7.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/common/index.d.ts +1 -1
- package/@types/mergeable-store/index.d.ts +2 -1
- package/@types/mergeable-store/with-schemas/index.d.ts +5 -3
- package/@types/omni/index.d.ts +2 -0
- package/@types/omni/with-schemas/index.d.ts +2 -0
- package/@types/persisters/index.d.ts +4 -0
- package/@types/persisters/persister-automerge/index.d.ts +4 -6
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +7 -8
- package/@types/persisters/persister-browser/index.d.ts +97 -6
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +113 -6
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +6 -2
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +5 -0
- package/@types/persisters/persister-durable-object-storage/index.d.ts +1 -2
- package/@types/persisters/persister-durable-object-storage/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-expo-sqlite/index.d.ts +5 -2
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-file/index.d.ts +1 -2
- package/@types/persisters/persister-file/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-libsql/index.d.ts +4 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-pglite/index.d.ts +7 -3
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +9 -3
- package/@types/persisters/persister-postgres/index.d.ts +5 -2
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-powersync/index.d.ts +4 -0
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-react-native-mmkv/index.d.ts +117 -0
- package/@types/persisters/persister-react-native-mmkv/with-schemas/index.d.ts +133 -0
- package/@types/persisters/persister-react-native-sqlite/index.d.ts +184 -0
- package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +207 -0
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +3 -2
- package/@types/persisters/persister-sqlite-bun/index.d.ts +5 -2
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +6 -2
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +8 -2
- package/@types/persisters/persister-sqlite3/index.d.ts +5 -2
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +7 -2
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +3 -2
- package/@types/persisters/with-schemas/index.d.ts +4 -0
- package/@types/queries/index.d.ts +1 -1
- package/@types/queries/with-schemas/index.d.ts +4 -8
- package/@types/store/index.d.ts +34 -19
- package/@types/store/with-schemas/index.d.ts +28 -13
- package/@types/synchronizers/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -2
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +3 -2
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +4 -2
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +1 -0
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +1 -1
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +1 -1
- package/@types/synchronizers/with-schemas/index.d.ts +4 -2
- package/@types/ui-react/index.d.ts +6 -1
- package/@types/ui-react/with-schemas/index.d.ts +6 -1
- package/@types/ui-react-dom/index.d.ts +153 -20
- package/@types/ui-react-dom/with-schemas/index.d.ts +72 -20
- package/@types/ui-react-inspector/index.d.ts +8 -0
- package/@types/ui-react-inspector/with-schemas/index.d.ts +27 -1925
- package/agents.md +343 -0
- package/checkpoints/index.js +11 -6
- package/checkpoints/with-schemas/index.js +11 -6
- package/common/index.js +8 -4
- package/common/with-schemas/index.js +8 -4
- package/index.js +63 -31
- package/indexes/index.js +10 -5
- package/indexes/with-schemas/index.js +10 -5
- package/mergeable-store/index.js +54 -22
- package/mergeable-store/with-schemas/index.js +54 -22
- package/metrics/index.js +10 -5
- package/metrics/with-schemas/index.js +10 -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 -0
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -0
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -0
- 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 +2178 -1203
- package/omni/with-schemas/index.js +2178 -1203
- package/package.json +91 -11
- package/persisters/index.js +16 -10
- package/persisters/persister-automerge/index.js +15 -9
- package/persisters/persister-automerge/with-schemas/index.js +15 -9
- package/persisters/persister-browser/index.js +41 -9
- package/persisters/persister-browser/with-schemas/index.js +41 -9
- package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
- package/persisters/persister-durable-object-sql-storage/index.js +16 -10
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
- package/persisters/persister-durable-object-storage/index.js +14 -8
- package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
- package/persisters/persister-electric-sql/index.js +16 -10
- package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
- package/persisters/persister-expo-sqlite/index.js +16 -10
- package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
- package/persisters/persister-file/index.js +14 -8
- package/persisters/persister-file/with-schemas/index.js +14 -8
- package/persisters/persister-indexed-db/index.js +14 -8
- package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
- package/persisters/persister-libsql/index.js +16 -10
- package/persisters/persister-libsql/with-schemas/index.js +16 -10
- package/persisters/persister-partykit-client/index.js +14 -8
- package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
- package/persisters/persister-partykit-server/index.js +7 -3
- package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
- package/persisters/persister-pglite/index.js +15 -9
- package/persisters/persister-pglite/with-schemas/index.js +15 -9
- package/persisters/persister-postgres/index.js +15 -9
- package/persisters/persister-postgres/with-schemas/index.js +15 -9
- package/persisters/persister-powersync/index.js +16 -10
- package/persisters/persister-powersync/with-schemas/index.js +16 -10
- package/persisters/persister-react-native-mmkv/index.js +465 -0
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +465 -0
- package/persisters/persister-react-native-sqlite/index.js +1195 -0
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +1195 -0
- package/persisters/persister-remote/index.js +16 -10
- package/persisters/persister-remote/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite-bun/index.js +16 -10
- package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite-wasm/index.js +16 -10
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
- package/persisters/persister-sqlite3/index.js +16 -10
- package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
- package/persisters/persister-yjs/index.js +20 -12
- package/persisters/persister-yjs/with-schemas/index.js +20 -12
- package/persisters/with-schemas/index.js +16 -10
- package/queries/index.js +20 -12
- package/queries/with-schemas/index.js +20 -12
- package/readme.md +13 -13
- package/relationships/index.js +10 -5
- package/relationships/with-schemas/index.js +10 -5
- package/releases.md +179 -41
- package/store/index.js +50 -18
- package/store/with-schemas/index.js +50 -18
- package/synchronizers/index.js +16 -10
- package/synchronizers/synchronizer-broadcast-channel/index.js +17 -11
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -11
- package/synchronizers/synchronizer-local/index.js +17 -11
- package/synchronizers/synchronizer-local/with-schemas/index.js +17 -11
- package/synchronizers/synchronizer-ws-client/index.js +16 -10
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server/index.js +16 -10
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +16 -10
- package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
- package/synchronizers/with-schemas/index.js +16 -10
- package/ui-react/index.js +408 -374
- package/ui-react/with-schemas/index.js +408 -374
- package/ui-react-dom/index.js +883 -437
- package/ui-react-dom/with-schemas/index.js +883 -437
- package/ui-react-inspector/index.js +1761 -556
- package/ui-react-inspector/with-schemas/index.js +1761 -556
- package/with-schemas/index.js +63 -31
|
@@ -5,9 +5,15 @@ const EMPTY_STRING = '';
|
|
|
5
5
|
const UTF8 = 'utf8';
|
|
6
6
|
const UNDEFINED = '\uFFFC';
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getIfNotFunction =
|
|
9
|
+
(predicate = isNullish) =>
|
|
10
|
+
(value, then, otherwise) =>
|
|
11
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
12
|
+
const isNullish = (thing) => thing == null;
|
|
13
|
+
const isUndefined = (thing) => thing === void 0;
|
|
14
|
+
const isNull = (thing) => thing === null;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
11
17
|
const isArray = (thing) => Array.isArray(thing);
|
|
12
18
|
const size = (arrayOrString) => arrayOrString.length;
|
|
13
19
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -31,12 +37,12 @@ const arrayShift = (array) => array.shift();
|
|
|
31
37
|
const object = Object;
|
|
32
38
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
33
39
|
const isObject = (obj) =>
|
|
34
|
-
!
|
|
35
|
-
|
|
40
|
+
!isNullish(obj) &&
|
|
41
|
+
ifNotNullish(
|
|
36
42
|
getPrototypeOf(obj),
|
|
37
43
|
(objPrototype) =>
|
|
38
44
|
objPrototype == object.prototype ||
|
|
39
|
-
|
|
45
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
40
46
|
|
|
41
47
|
/* istanbul ignore next */
|
|
42
48
|
() => true,
|
|
@@ -62,7 +68,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
62
68
|
const mapNew = (entries) => new Map(entries);
|
|
63
69
|
const mapGet = (map, key) => map?.get(key);
|
|
64
70
|
const mapSet = (map, key, value) =>
|
|
65
|
-
|
|
71
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
66
72
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
67
73
|
if (!collHas(map, key)) {
|
|
68
74
|
mapSet(map, key, getDefaultValue());
|
|
@@ -173,7 +179,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
173
179
|
const index = size(ids);
|
|
174
180
|
if (index == size(path)) {
|
|
175
181
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
176
|
-
} else if (
|
|
182
|
+
} else if (isNull(path[index])) {
|
|
177
183
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
178
184
|
callWithIds(...ids, id2),
|
|
179
185
|
);
|
|
@@ -5,9 +5,15 @@ const EMPTY_STRING = '';
|
|
|
5
5
|
const UTF8 = 'utf8';
|
|
6
6
|
const UNDEFINED = '\uFFFC';
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getIfNotFunction =
|
|
9
|
+
(predicate = isNullish) =>
|
|
10
|
+
(value, then, otherwise) =>
|
|
11
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
12
|
+
const isNullish = (thing) => thing == null;
|
|
13
|
+
const isUndefined = (thing) => thing === void 0;
|
|
14
|
+
const isNull = (thing) => thing === null;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
11
17
|
const isArray = (thing) => Array.isArray(thing);
|
|
12
18
|
const size = (arrayOrString) => arrayOrString.length;
|
|
13
19
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -31,12 +37,12 @@ const arrayShift = (array) => array.shift();
|
|
|
31
37
|
const object = Object;
|
|
32
38
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
33
39
|
const isObject = (obj) =>
|
|
34
|
-
!
|
|
35
|
-
|
|
40
|
+
!isNullish(obj) &&
|
|
41
|
+
ifNotNullish(
|
|
36
42
|
getPrototypeOf(obj),
|
|
37
43
|
(objPrototype) =>
|
|
38
44
|
objPrototype == object.prototype ||
|
|
39
|
-
|
|
45
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
40
46
|
|
|
41
47
|
/* istanbul ignore next */
|
|
42
48
|
() => true,
|
|
@@ -62,7 +68,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
62
68
|
const mapNew = (entries) => new Map(entries);
|
|
63
69
|
const mapGet = (map, key) => map?.get(key);
|
|
64
70
|
const mapSet = (map, key, value) =>
|
|
65
|
-
|
|
71
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
66
72
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
67
73
|
if (!collHas(map, key)) {
|
|
68
74
|
mapSet(map, key, getDefaultValue());
|
|
@@ -173,7 +179,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
173
179
|
const index = size(ids);
|
|
174
180
|
if (index == size(path)) {
|
|
175
181
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
176
|
-
} else if (
|
|
182
|
+
} else if (isNull(path[index])) {
|
|
177
183
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
178
184
|
callWithIds(...ids, id2),
|
|
179
185
|
);
|
|
@@ -3,6 +3,10 @@ const T = 't';
|
|
|
3
3
|
const V = 'v';
|
|
4
4
|
|
|
5
5
|
const promise = Promise;
|
|
6
|
+
const getIfNotFunction =
|
|
7
|
+
(predicate = isNullish) =>
|
|
8
|
+
(value, then, otherwise) =>
|
|
9
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
6
10
|
const GLOBAL = globalThis;
|
|
7
11
|
const WINDOW = GLOBAL.window;
|
|
8
12
|
const THOUSAND = 1e3;
|
|
@@ -10,9 +14,11 @@ const startInterval = (callback, sec, immediate) => {
|
|
|
10
14
|
return setInterval(callback, sec * THOUSAND);
|
|
11
15
|
};
|
|
12
16
|
const stopInterval = clearInterval;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
17
|
+
const isNullish = (thing) => thing == null;
|
|
18
|
+
const isUndefined = (thing) => thing === void 0;
|
|
19
|
+
const isNull = (thing) => thing === null;
|
|
20
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
21
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
16
22
|
const isArray = (thing) => Array.isArray(thing);
|
|
17
23
|
const size = (arrayOrString) => arrayOrString.length;
|
|
18
24
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -40,12 +46,12 @@ const object = Object;
|
|
|
40
46
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
41
47
|
const objEntries = object.entries;
|
|
42
48
|
const isObject = (obj) =>
|
|
43
|
-
!
|
|
44
|
-
|
|
49
|
+
!isNullish(obj) &&
|
|
50
|
+
ifNotNullish(
|
|
45
51
|
getPrototypeOf(obj),
|
|
46
52
|
(objPrototype) =>
|
|
47
53
|
objPrototype == object.prototype ||
|
|
48
|
-
|
|
54
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
49
55
|
|
|
50
56
|
/* istanbul ignore next */
|
|
51
57
|
() => true,
|
|
@@ -68,7 +74,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
68
74
|
const mapNew = (entries) => new Map(entries);
|
|
69
75
|
const mapGet = (map, key) => map?.get(key);
|
|
70
76
|
const mapSet = (map, key, value) =>
|
|
71
|
-
|
|
77
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
72
78
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
73
79
|
if (!collHas(map, key)) {
|
|
74
80
|
mapSet(map, key, getDefaultValue());
|
|
@@ -179,7 +185,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
179
185
|
const index = size(ids);
|
|
180
186
|
if (index == size(path)) {
|
|
181
187
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
182
|
-
} else if (
|
|
188
|
+
} else if (isNull(path[index])) {
|
|
183
189
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
184
190
|
callWithIds(...ids, id2),
|
|
185
191
|
);
|
|
@@ -3,6 +3,10 @@ const T = 't';
|
|
|
3
3
|
const V = 'v';
|
|
4
4
|
|
|
5
5
|
const promise = Promise;
|
|
6
|
+
const getIfNotFunction =
|
|
7
|
+
(predicate = isNullish) =>
|
|
8
|
+
(value, then, otherwise) =>
|
|
9
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
6
10
|
const GLOBAL = globalThis;
|
|
7
11
|
const WINDOW = GLOBAL.window;
|
|
8
12
|
const THOUSAND = 1e3;
|
|
@@ -10,9 +14,11 @@ const startInterval = (callback, sec, immediate) => {
|
|
|
10
14
|
return setInterval(callback, sec * THOUSAND);
|
|
11
15
|
};
|
|
12
16
|
const stopInterval = clearInterval;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
17
|
+
const isNullish = (thing) => thing == null;
|
|
18
|
+
const isUndefined = (thing) => thing === void 0;
|
|
19
|
+
const isNull = (thing) => thing === null;
|
|
20
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
21
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
16
22
|
const isArray = (thing) => Array.isArray(thing);
|
|
17
23
|
const size = (arrayOrString) => arrayOrString.length;
|
|
18
24
|
const test = (regex, subject) => regex.test(subject);
|
|
@@ -40,12 +46,12 @@ const object = Object;
|
|
|
40
46
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
41
47
|
const objEntries = object.entries;
|
|
42
48
|
const isObject = (obj) =>
|
|
43
|
-
!
|
|
44
|
-
|
|
49
|
+
!isNullish(obj) &&
|
|
50
|
+
ifNotNullish(
|
|
45
51
|
getPrototypeOf(obj),
|
|
46
52
|
(objPrototype) =>
|
|
47
53
|
objPrototype == object.prototype ||
|
|
48
|
-
|
|
54
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
49
55
|
|
|
50
56
|
/* istanbul ignore next */
|
|
51
57
|
() => true,
|
|
@@ -68,7 +74,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
68
74
|
const mapNew = (entries) => new Map(entries);
|
|
69
75
|
const mapGet = (map, key) => map?.get(key);
|
|
70
76
|
const mapSet = (map, key, value) =>
|
|
71
|
-
|
|
77
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
72
78
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
73
79
|
if (!collHas(map, key)) {
|
|
74
80
|
mapSet(map, key, getDefaultValue());
|
|
@@ -179,7 +185,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
179
185
|
const index = size(ids);
|
|
180
186
|
if (index == size(path)) {
|
|
181
187
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
182
|
-
} else if (
|
|
188
|
+
} else if (isNull(path[index])) {
|
|
183
189
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
184
190
|
callWithIds(...ids, id2),
|
|
185
191
|
);
|
|
@@ -12,14 +12,20 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction =
|
|
16
|
+
(predicate = isNullish) =>
|
|
17
|
+
(value, then, otherwise) =>
|
|
18
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
19
|
const THOUSAND = 1e3;
|
|
16
20
|
const startInterval = (callback, sec, immediate) => {
|
|
17
21
|
return setInterval(callback, sec * THOUSAND);
|
|
18
22
|
};
|
|
19
23
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
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);
|
|
23
29
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
30
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
31
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +108,12 @@ const object = Object;
|
|
|
102
108
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
109
|
const objEntries = object.entries;
|
|
104
110
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
111
|
+
!isNullish(obj) &&
|
|
112
|
+
ifNotNullish(
|
|
107
113
|
getPrototypeOf(obj),
|
|
108
114
|
(objPrototype) =>
|
|
109
115
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
116
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
117
|
|
|
112
118
|
/* istanbul ignore next */
|
|
113
119
|
() => true,
|
|
@@ -136,7 +142,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
142
|
const mapMap = (coll, cb) =>
|
|
137
143
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
144
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
145
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
146
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
147
|
if (!collHas(map, key)) {
|
|
142
148
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +229,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
229
|
0,
|
|
224
230
|
objSize(defaultObj),
|
|
225
231
|
);
|
|
226
|
-
if (!
|
|
232
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
233
|
then(id, defaultedConfig[0]);
|
|
228
234
|
mapSet(configMap, id, defaultedConfig);
|
|
229
235
|
}
|
|
@@ -372,7 +378,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
378
|
const index = size(ids);
|
|
373
379
|
if (index == size(path)) {
|
|
374
380
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
381
|
+
} else if (isNull(path[index])) {
|
|
376
382
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
383
|
callWithIds(...ids, id2),
|
|
378
384
|
);
|
|
@@ -1117,7 +1123,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1123
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1124
|
);
|
|
1119
1125
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1126
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1127
|
listener();
|
|
1122
1128
|
}
|
|
1123
1129
|
dataVersion = d;
|
|
@@ -12,14 +12,20 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
12
12
|
str.replace(searchValue, replaceValue);
|
|
13
13
|
|
|
14
14
|
const promise = Promise;
|
|
15
|
+
const getIfNotFunction =
|
|
16
|
+
(predicate = isNullish) =>
|
|
17
|
+
(value, then, otherwise) =>
|
|
18
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
15
19
|
const THOUSAND = 1e3;
|
|
16
20
|
const startInterval = (callback, sec, immediate) => {
|
|
17
21
|
return setInterval(callback, sec * THOUSAND);
|
|
18
22
|
};
|
|
19
23
|
const stopInterval = clearInterval;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
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);
|
|
23
29
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
24
30
|
const isArray = (thing) => Array.isArray(thing);
|
|
25
31
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -102,12 +108,12 @@ const object = Object;
|
|
|
102
108
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
103
109
|
const objEntries = object.entries;
|
|
104
110
|
const isObject = (obj) =>
|
|
105
|
-
!
|
|
106
|
-
|
|
111
|
+
!isNullish(obj) &&
|
|
112
|
+
ifNotNullish(
|
|
107
113
|
getPrototypeOf(obj),
|
|
108
114
|
(objPrototype) =>
|
|
109
115
|
objPrototype == object.prototype ||
|
|
110
|
-
|
|
116
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
111
117
|
|
|
112
118
|
/* istanbul ignore next */
|
|
113
119
|
() => true,
|
|
@@ -136,7 +142,7 @@ const mapForEach = (map, cb) =>
|
|
|
136
142
|
const mapMap = (coll, cb) =>
|
|
137
143
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
138
144
|
const mapSet = (map, key, value) =>
|
|
139
|
-
|
|
145
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
140
146
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
141
147
|
if (!collHas(map, key)) {
|
|
142
148
|
mapSet(map, key, getDefaultValue());
|
|
@@ -223,7 +229,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
223
229
|
0,
|
|
224
230
|
objSize(defaultObj),
|
|
225
231
|
);
|
|
226
|
-
if (!
|
|
232
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
227
233
|
then(id, defaultedConfig[0]);
|
|
228
234
|
mapSet(configMap, id, defaultedConfig);
|
|
229
235
|
}
|
|
@@ -372,7 +378,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
372
378
|
const index = size(ids);
|
|
373
379
|
if (index == size(path)) {
|
|
374
380
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
375
|
-
} else if (
|
|
381
|
+
} else if (isNull(path[index])) {
|
|
376
382
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
377
383
|
callWithIds(...ids, id2),
|
|
378
384
|
);
|
|
@@ -1117,7 +1123,7 @@ const createCustomSqlitePersister = (
|
|
|
1117
1123
|
` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
1118
1124
|
);
|
|
1119
1125
|
if (d != dataVersion || s != schemaVersion || c != totalChanges) {
|
|
1120
|
-
if (dataVersion
|
|
1126
|
+
if (!isNullish(dataVersion)) {
|
|
1121
1127
|
listener();
|
|
1122
1128
|
}
|
|
1123
1129
|
dataVersion = d;
|
|
@@ -4,10 +4,16 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
4
4
|
const MESSAGE = 'message';
|
|
5
5
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
6
6
|
|
|
7
|
+
const getIfNotFunction =
|
|
8
|
+
(predicate = isNullish) =>
|
|
9
|
+
(value, then, otherwise) =>
|
|
10
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
7
11
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
12
|
+
const isNullish = (thing) => thing == null;
|
|
13
|
+
const isUndefined = (thing) => thing === void 0;
|
|
14
|
+
const isNull = (thing) => thing === null;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
11
17
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
12
18
|
const isArray = (thing) => Array.isArray(thing);
|
|
13
19
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -33,12 +39,12 @@ const arrayShift = (array) => array.shift();
|
|
|
33
39
|
const object = Object;
|
|
34
40
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
35
41
|
const isObject = (obj) =>
|
|
36
|
-
!
|
|
37
|
-
|
|
42
|
+
!isNullish(obj) &&
|
|
43
|
+
ifNotNullish(
|
|
38
44
|
getPrototypeOf(obj),
|
|
39
45
|
(objPrototype) =>
|
|
40
46
|
objPrototype == object.prototype ||
|
|
41
|
-
|
|
47
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
42
48
|
|
|
43
49
|
/* istanbul ignore next */
|
|
44
50
|
() => true,
|
|
@@ -64,7 +70,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
64
70
|
const mapNew = (entries) => new Map(entries);
|
|
65
71
|
const mapGet = (map, key) => map?.get(key);
|
|
66
72
|
const mapSet = (map, key, value) =>
|
|
67
|
-
|
|
73
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
68
74
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
69
75
|
if (!collHas(map, key)) {
|
|
70
76
|
mapSet(map, key, getDefaultValue());
|
|
@@ -175,7 +181,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
175
181
|
const index = size(ids);
|
|
176
182
|
if (index == size(path)) {
|
|
177
183
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
178
|
-
} else if (
|
|
184
|
+
} else if (isNull(path[index])) {
|
|
179
185
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
180
186
|
callWithIds(...ids, id2),
|
|
181
187
|
);
|
|
@@ -4,10 +4,16 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
4
4
|
const MESSAGE = 'message';
|
|
5
5
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
6
6
|
|
|
7
|
+
const getIfNotFunction =
|
|
8
|
+
(predicate = isNullish) =>
|
|
9
|
+
(value, then, otherwise) =>
|
|
10
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
7
11
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
12
|
+
const isNullish = (thing) => thing == null;
|
|
13
|
+
const isUndefined = (thing) => thing === void 0;
|
|
14
|
+
const isNull = (thing) => thing === null;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
11
17
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
12
18
|
const isArray = (thing) => Array.isArray(thing);
|
|
13
19
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -33,12 +39,12 @@ const arrayShift = (array) => array.shift();
|
|
|
33
39
|
const object = Object;
|
|
34
40
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
35
41
|
const isObject = (obj) =>
|
|
36
|
-
!
|
|
37
|
-
|
|
42
|
+
!isNullish(obj) &&
|
|
43
|
+
ifNotNullish(
|
|
38
44
|
getPrototypeOf(obj),
|
|
39
45
|
(objPrototype) =>
|
|
40
46
|
objPrototype == object.prototype ||
|
|
41
|
-
|
|
47
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
42
48
|
|
|
43
49
|
/* istanbul ignore next */
|
|
44
50
|
() => true,
|
|
@@ -64,7 +70,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
64
70
|
const mapNew = (entries) => new Map(entries);
|
|
65
71
|
const mapGet = (map, key) => map?.get(key);
|
|
66
72
|
const mapSet = (map, key, value) =>
|
|
67
|
-
|
|
73
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
68
74
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
69
75
|
if (!collHas(map, key)) {
|
|
70
76
|
mapSet(map, key, getDefaultValue());
|
|
@@ -175,7 +181,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
175
181
|
const index = size(ids);
|
|
176
182
|
if (index == size(path)) {
|
|
177
183
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
178
|
-
} else if (
|
|
184
|
+
} else if (isNull(path[index])) {
|
|
179
185
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
180
186
|
callWithIds(...ids, id2),
|
|
181
187
|
);
|
|
@@ -6,10 +6,14 @@ const V = 'v';
|
|
|
6
6
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
7
7
|
|
|
8
8
|
const promise = Promise;
|
|
9
|
+
const getIfNotFunction =
|
|
10
|
+
(predicate = isNullish) =>
|
|
11
|
+
(value, then, otherwise) =>
|
|
12
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
9
13
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
14
|
+
const isNullish = (thing) => thing == null;
|
|
15
|
+
const isUndefined = (thing) => thing === void 0;
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
13
17
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
14
18
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
15
19
|
const size = (arrayOrString) => arrayOrString.length;
|
|
@@ -6,10 +6,14 @@ const V = 'v';
|
|
|
6
6
|
const strStartsWith = (str, prefix) => str.startsWith(prefix);
|
|
7
7
|
|
|
8
8
|
const promise = Promise;
|
|
9
|
+
const getIfNotFunction =
|
|
10
|
+
(predicate = isNullish) =>
|
|
11
|
+
(value, then, otherwise) =>
|
|
12
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
9
13
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
14
|
+
const isNullish = (thing) => thing == null;
|
|
15
|
+
const isUndefined = (thing) => thing === void 0;
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
13
17
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
14
18
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
15
19
|
const size = (arrayOrString) => arrayOrString.length;
|
|
@@ -13,10 +13,16 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
13
13
|
str.replace(searchValue, replaceValue);
|
|
14
14
|
|
|
15
15
|
const promise = Promise;
|
|
16
|
+
const getIfNotFunction =
|
|
17
|
+
(predicate = isNullish) =>
|
|
18
|
+
(value, then, otherwise) =>
|
|
19
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
16
20
|
const GLOBAL = globalThis;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
21
|
+
const isNullish = (thing) => thing == null;
|
|
22
|
+
const isUndefined = (thing) => thing === void 0;
|
|
23
|
+
const isNull = (thing) => thing === null;
|
|
24
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
25
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
20
26
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
21
27
|
const isArray = (thing) => Array.isArray(thing);
|
|
22
28
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -57,12 +63,12 @@ const object = Object;
|
|
|
57
63
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
58
64
|
const objEntries = object.entries;
|
|
59
65
|
const isObject = (obj) =>
|
|
60
|
-
!
|
|
61
|
-
|
|
66
|
+
!isNullish(obj) &&
|
|
67
|
+
ifNotNullish(
|
|
62
68
|
getPrototypeOf(obj),
|
|
63
69
|
(objPrototype) =>
|
|
64
70
|
objPrototype == object.prototype ||
|
|
65
|
-
|
|
71
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
66
72
|
|
|
67
73
|
/* istanbul ignore next */
|
|
68
74
|
() => true,
|
|
@@ -109,7 +115,7 @@ const mapForEach = (map, cb) =>
|
|
|
109
115
|
const mapMap = (coll, cb) =>
|
|
110
116
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
111
117
|
const mapSet = (map, key, value) =>
|
|
112
|
-
|
|
118
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
113
119
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
114
120
|
if (!collHas(map, key)) {
|
|
115
121
|
mapSet(map, key, getDefaultValue());
|
|
@@ -237,7 +243,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
237
243
|
0,
|
|
238
244
|
objSize(defaultObj),
|
|
239
245
|
);
|
|
240
|
-
if (!
|
|
246
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
241
247
|
then(id, defaultedConfig[0]);
|
|
242
248
|
mapSet(configMap, id, defaultedConfig);
|
|
243
249
|
}
|
|
@@ -379,7 +385,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
379
385
|
const index = size(ids);
|
|
380
386
|
if (index == size(path)) {
|
|
381
387
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
382
|
-
} else if (
|
|
388
|
+
} else if (isNull(path[index])) {
|
|
383
389
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
384
390
|
callWithIds(...ids, id2),
|
|
385
391
|
);
|
|
@@ -13,10 +13,16 @@ const strReplace = (str, searchValue, replaceValue) =>
|
|
|
13
13
|
str.replace(searchValue, replaceValue);
|
|
14
14
|
|
|
15
15
|
const promise = Promise;
|
|
16
|
+
const getIfNotFunction =
|
|
17
|
+
(predicate = isNullish) =>
|
|
18
|
+
(value, then, otherwise) =>
|
|
19
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
16
20
|
const GLOBAL = globalThis;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
21
|
+
const isNullish = (thing) => thing == null;
|
|
22
|
+
const isUndefined = (thing) => thing === void 0;
|
|
23
|
+
const isNull = (thing) => thing === null;
|
|
24
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
25
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
20
26
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
21
27
|
const isArray = (thing) => Array.isArray(thing);
|
|
22
28
|
const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
|
|
@@ -57,12 +63,12 @@ const object = Object;
|
|
|
57
63
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
58
64
|
const objEntries = object.entries;
|
|
59
65
|
const isObject = (obj) =>
|
|
60
|
-
!
|
|
61
|
-
|
|
66
|
+
!isNullish(obj) &&
|
|
67
|
+
ifNotNullish(
|
|
62
68
|
getPrototypeOf(obj),
|
|
63
69
|
(objPrototype) =>
|
|
64
70
|
objPrototype == object.prototype ||
|
|
65
|
-
|
|
71
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
66
72
|
|
|
67
73
|
/* istanbul ignore next */
|
|
68
74
|
() => true,
|
|
@@ -109,7 +115,7 @@ const mapForEach = (map, cb) =>
|
|
|
109
115
|
const mapMap = (coll, cb) =>
|
|
110
116
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
111
117
|
const mapSet = (map, key, value) =>
|
|
112
|
-
|
|
118
|
+
value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
|
|
113
119
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
114
120
|
if (!collHas(map, key)) {
|
|
115
121
|
mapSet(map, key, getDefaultValue());
|
|
@@ -237,7 +243,7 @@ const getDefaultedTabularConfigMap = (
|
|
|
237
243
|
0,
|
|
238
244
|
objSize(defaultObj),
|
|
239
245
|
);
|
|
240
|
-
if (!
|
|
246
|
+
if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
|
|
241
247
|
then(id, defaultedConfig[0]);
|
|
242
248
|
mapSet(configMap, id, defaultedConfig);
|
|
243
249
|
}
|
|
@@ -379,7 +385,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
379
385
|
const index = size(ids);
|
|
380
386
|
if (index == size(path)) {
|
|
381
387
|
listener(thing, ...ids, ...extraArgsGetter(ids));
|
|
382
|
-
} else if (
|
|
388
|
+
} else if (isNull(path[index])) {
|
|
383
389
|
arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
|
|
384
390
|
callWithIds(...ids, id2),
|
|
385
391
|
);
|