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
package/@types/store/index.d.ts
CHANGED
|
@@ -44,9 +44,9 @@ export type TablesSchema = {[tableId: Id]: {[cellId: Id]: CellSchema}};
|
|
|
44
44
|
* The CellSchema type describes what values are allowed for each Cell in a
|
|
45
45
|
* Table.
|
|
46
46
|
*
|
|
47
|
-
* A CellSchema specifies the type of the Cell (`string`, `boolean`,
|
|
48
|
-
* `
|
|
49
|
-
* specified.
|
|
47
|
+
* A CellSchema specifies the type of the Cell (`string`, `boolean`, `number`;
|
|
48
|
+
* or `null`, since v7.0), and what the default value can be when an explicit
|
|
49
|
+
* value is not specified.
|
|
50
50
|
*
|
|
51
51
|
* If a default value is provided (and its type is correct), you can be certain
|
|
52
52
|
* that that Cell will always be present in a Row.
|
|
@@ -70,9 +70,9 @@ export type TablesSchema = {[tableId: Id]: {[cellId: Id]: CellSchema}};
|
|
|
70
70
|
* @since v1.0.0
|
|
71
71
|
*/
|
|
72
72
|
export type CellSchema =
|
|
73
|
-
| {type: 'string'; default?: string}
|
|
74
|
-
| {type: 'number'; default?: number}
|
|
75
|
-
| {type: 'boolean'; default?: boolean};
|
|
73
|
+
| {type: 'string'; default?: string | null; allowNull?: boolean}
|
|
74
|
+
| {type: 'number'; default?: number | null; allowNull?: boolean}
|
|
75
|
+
| {type: 'boolean'; default?: boolean | null; allowNull?: boolean};
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* The ValuesSchema type describes the keyed Values that can be set in a Store
|
|
@@ -100,9 +100,9 @@ export type ValuesSchema = {[valueId: Id]: ValueSchema};
|
|
|
100
100
|
* The ValueSchema type describes what values are allowed for keyed Values in a
|
|
101
101
|
* Store.
|
|
102
102
|
*
|
|
103
|
-
* A ValueSchema specifies the type of the Value (`string`, `boolean`,
|
|
104
|
-
* `
|
|
105
|
-
* specified.
|
|
103
|
+
* A ValueSchema specifies the type of the Value (`string`, `boolean`, `number`;
|
|
104
|
+
* or `null` since v7.0), and what the default value can be when an explicit
|
|
105
|
+
* value is not specified.
|
|
106
106
|
*
|
|
107
107
|
* If a default value is provided (and its type is correct), you can be certain
|
|
108
108
|
* that the Value will always be present in a Store.
|
|
@@ -126,9 +126,9 @@ export type ValuesSchema = {[valueId: Id]: ValueSchema};
|
|
|
126
126
|
* @since v3.0.0
|
|
127
127
|
*/
|
|
128
128
|
export type ValueSchema =
|
|
129
|
-
| {type: 'string'; default?: string}
|
|
130
|
-
| {type: 'number'; default?: number}
|
|
131
|
-
| {type: 'boolean'; default?: boolean};
|
|
129
|
+
| {type: 'string'; default?: string | null; allowNull?: boolean}
|
|
130
|
+
| {type: 'number'; default?: number | null; allowNull?: boolean}
|
|
131
|
+
| {type: 'boolean'; default?: boolean | null; allowNull?: boolean};
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
134
|
* The NoTablesSchema type is a TablesSchema-like type for when one has not been
|
|
@@ -280,7 +280,7 @@ export type Row = {[cellId: Id]: Cell};
|
|
|
280
280
|
*
|
|
281
281
|
* A Cell is used when setting a cell with the setCell method, and when getting
|
|
282
282
|
* it back out again with the getCell method. A Cell is a JavaScript string,
|
|
283
|
-
* number, or
|
|
283
|
+
* number, boolean; or null since v7.0.
|
|
284
284
|
* @example
|
|
285
285
|
* ```js
|
|
286
286
|
* import type {Cell} from 'tinybase';
|
|
@@ -290,7 +290,7 @@ export type Row = {[cellId: Id]: Cell};
|
|
|
290
290
|
* @category Store
|
|
291
291
|
* @since v1.0.0
|
|
292
292
|
*/
|
|
293
|
-
export type Cell = string | number | boolean;
|
|
293
|
+
export type Cell = string | number | boolean | null;
|
|
294
294
|
|
|
295
295
|
/**
|
|
296
296
|
* The CellOrUndefined type is a data structure representing the data in a
|
|
@@ -329,7 +329,7 @@ export type Values = {[valueId: Id]: Value};
|
|
|
329
329
|
*
|
|
330
330
|
* A Value is used when setting a value with the setValue method, and when
|
|
331
331
|
* getting it back out again with the getValue method. A Value is a JavaScript
|
|
332
|
-
* string, number, or
|
|
332
|
+
* string, number, boolean; or null since v7.0.
|
|
333
333
|
* @example
|
|
334
334
|
* ```js
|
|
335
335
|
* import type {Value} from 'tinybase';
|
|
@@ -339,7 +339,7 @@ export type Values = {[valueId: Id]: Value};
|
|
|
339
339
|
* @category Store
|
|
340
340
|
* @since v3.0.0
|
|
341
341
|
*/
|
|
342
|
-
export type Value = string | number | boolean;
|
|
342
|
+
export type Value = string | number | boolean | null;
|
|
343
343
|
|
|
344
344
|
/**
|
|
345
345
|
* The ValueOrUndefined type is a data structure representing the data in a
|
|
@@ -1704,13 +1704,14 @@ export type StoreListenerStats = {
|
|
|
1704
1704
|
*
|
|
1705
1705
|
* The keyed value support is best thought of as a flat JavaScript object. The
|
|
1706
1706
|
* Store contains a number of Value objects, each with a unique ID, and which is
|
|
1707
|
-
* a string, boolean, or
|
|
1707
|
+
* a string, boolean, number; or null since v7.0.
|
|
1708
1708
|
*
|
|
1709
1709
|
* ```json
|
|
1710
1710
|
* { // Store
|
|
1711
1711
|
* "value1": "one", // Value (string)
|
|
1712
1712
|
* "value2": true, // Value (boolean)
|
|
1713
1713
|
* "value3": 3, // Value (number)
|
|
1714
|
+
* "value4": null, // Value (null since v7.0)
|
|
1714
1715
|
* ...
|
|
1715
1716
|
* }
|
|
1716
1717
|
* ```
|
|
@@ -1727,7 +1728,7 @@ export type StoreListenerStats = {
|
|
|
1727
1728
|
* - Each Table contains a number of Row objects.
|
|
1728
1729
|
* - Each Row contains a number of Cell objects.
|
|
1729
1730
|
*
|
|
1730
|
-
* A Cell is a string, boolean, or
|
|
1731
|
+
* A Cell is a string, boolean, number; or null since v7.0.
|
|
1731
1732
|
*
|
|
1732
1733
|
* The members of each level of this hierarchy are identified with a unique Id
|
|
1733
1734
|
* (which is a string). In other words you can naively think of a Store as a
|
|
@@ -1740,6 +1741,7 @@ export type StoreListenerStats = {
|
|
|
1740
1741
|
* "cell1": "one", // Cell (string)
|
|
1741
1742
|
* "cell2": true, // Cell (boolean)
|
|
1742
1743
|
* "cell3": 3, // Cell (number)
|
|
1744
|
+
* "cell4": null, // Cell (null since v7.0)
|
|
1743
1745
|
* ...
|
|
1744
1746
|
* },
|
|
1745
1747
|
* ...
|
|
@@ -1872,6 +1874,7 @@ export type StoreListenerStats = {
|
|
|
1872
1874
|
* @see Hello World demos
|
|
1873
1875
|
* @see Todo App demos
|
|
1874
1876
|
* @category Store
|
|
1877
|
+
* @essential Creating stores
|
|
1875
1878
|
* @since v1.0.0
|
|
1876
1879
|
*/
|
|
1877
1880
|
export interface Store {
|
|
@@ -2321,6 +2324,7 @@ export interface Store {
|
|
|
2321
2324
|
* // -> {}
|
|
2322
2325
|
* ```
|
|
2323
2326
|
* @category Getter
|
|
2327
|
+
* @essential Getting data
|
|
2324
2328
|
* @since v1.0.0
|
|
2325
2329
|
*/
|
|
2326
2330
|
getRow(tableId: Id, rowId: Id): Row;
|
|
@@ -2394,6 +2398,7 @@ export interface Store {
|
|
|
2394
2398
|
* // -> undefined
|
|
2395
2399
|
* ```
|
|
2396
2400
|
* @category Getter
|
|
2401
|
+
* @essential Getting data
|
|
2397
2402
|
* @since v1.0.0
|
|
2398
2403
|
*/
|
|
2399
2404
|
getCell(tableId: Id, rowId: Id, cellId: Id): CellOrUndefined;
|
|
@@ -2489,6 +2494,7 @@ export interface Store {
|
|
|
2489
2494
|
* // -> undefined
|
|
2490
2495
|
* ```
|
|
2491
2496
|
* @category Getter
|
|
2497
|
+
* @essential Getting data
|
|
2492
2498
|
* @since v3.0.0
|
|
2493
2499
|
*/
|
|
2494
2500
|
getValue(valueId: Id): ValueOrUndefined;
|
|
@@ -3157,6 +3163,7 @@ export interface Store {
|
|
|
3157
3163
|
* // -> {pets: {fido: {color: 'brown'}}}
|
|
3158
3164
|
* ```
|
|
3159
3165
|
* @category Setter
|
|
3166
|
+
* @essential Setting data
|
|
3160
3167
|
* @since v1.0.0
|
|
3161
3168
|
*/
|
|
3162
3169
|
setRow(tableId: Id, rowId: Id, row: Row): this;
|
|
@@ -3223,6 +3230,7 @@ export interface Store {
|
|
|
3223
3230
|
* // -> {pets: {'0': {species: 'dog'}, '1': {species: 'cat'}}}
|
|
3224
3231
|
* ```
|
|
3225
3232
|
* @category Setter
|
|
3233
|
+
* @essential Setting data
|
|
3226
3234
|
* @since v1.0.0
|
|
3227
3235
|
*/
|
|
3228
3236
|
addRow(tableId: Id, row: Row, reuseRowIds?: boolean): Id | undefined;
|
|
@@ -3343,6 +3351,7 @@ export interface Store {
|
|
|
3343
3351
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
3344
3352
|
* ```
|
|
3345
3353
|
* @category Setter
|
|
3354
|
+
* @essential Setting data
|
|
3346
3355
|
* @since v1.0.0
|
|
3347
3356
|
*/
|
|
3348
3357
|
setCell(tableId: Id, rowId: Id, cellId: Id, cell: Cell | MapCell): this;
|
|
@@ -3506,6 +3515,7 @@ export interface Store {
|
|
|
3506
3515
|
* // -> {employees: 3}
|
|
3507
3516
|
* ```
|
|
3508
3517
|
* @category Setter
|
|
3518
|
+
* @essential Setting data
|
|
3509
3519
|
* @since v3.0.0
|
|
3510
3520
|
*/
|
|
3511
3521
|
setValue(valueId: Id, value: Value | MapValue): this;
|
|
@@ -3539,7 +3549,7 @@ export interface Store {
|
|
|
3539
3549
|
* .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
|
|
3540
3550
|
* .setValues({open: true});
|
|
3541
3551
|
*
|
|
3542
|
-
* store.applyChanges([{pets: {fido: {color: 'black'}}}, {open:
|
|
3552
|
+
* store.applyChanges([{pets: {fido: {color: 'black'}}}, {open: undefined}]);
|
|
3543
3553
|
* console.log(store.getTables());
|
|
3544
3554
|
* // -> {pets: {fido: {species: 'dog', color: 'black'}}}
|
|
3545
3555
|
* console.log(store.getValues());
|
|
@@ -4263,6 +4273,7 @@ export interface Store {
|
|
|
4263
4273
|
* // -> {open: true}
|
|
4264
4274
|
* ```
|
|
4265
4275
|
* @category Transaction
|
|
4276
|
+
* @essential Setting data
|
|
4266
4277
|
* @since v1.0.0
|
|
4267
4278
|
*/
|
|
4268
4279
|
transaction<Return>(actions: () => Return, doRollback?: DoRollback): Return;
|
|
@@ -6025,6 +6036,7 @@ export interface Store {
|
|
|
6025
6036
|
* store.delListener(listenerId);
|
|
6026
6037
|
* ```
|
|
6027
6038
|
* @category Listener
|
|
6039
|
+
* @essential Listening for changes
|
|
6028
6040
|
* @since v1.0.0
|
|
6029
6041
|
*/
|
|
6030
6042
|
addRowListener(
|
|
@@ -6392,6 +6404,7 @@ export interface Store {
|
|
|
6392
6404
|
* store.delListener(listenerId);
|
|
6393
6405
|
* ```
|
|
6394
6406
|
* @category Listener
|
|
6407
|
+
* @essential Listening for changes
|
|
6395
6408
|
* @since v1.0.0
|
|
6396
6409
|
*/
|
|
6397
6410
|
addCellListener(
|
|
@@ -6794,6 +6807,7 @@ export interface Store {
|
|
|
6794
6807
|
* store.delListener(listenerId);
|
|
6795
6808
|
* ```
|
|
6796
6809
|
* @category Listener
|
|
6810
|
+
* @essential Listening for changes
|
|
6797
6811
|
* @since v3.0.0
|
|
6798
6812
|
*/
|
|
6799
6813
|
addValueListener(
|
|
@@ -7715,6 +7729,7 @@ export interface Store {
|
|
|
7715
7729
|
* ```
|
|
7716
7730
|
* @see The Basics guides
|
|
7717
7731
|
* @category Creation
|
|
7732
|
+
* @essential Creating stores
|
|
7718
7733
|
* @since v1.0.0
|
|
7719
7734
|
*/
|
|
7720
7735
|
export function createStore(): Store;
|
|
@@ -60,9 +60,9 @@ export type TablesSchema = {[tableId: Id]: {[cellId: Id]: CellSchema}};
|
|
|
60
60
|
* The CellSchema type describes what values are allowed for each Cell in a
|
|
61
61
|
* Table.
|
|
62
62
|
*
|
|
63
|
-
* A CellSchema specifies the type of the Cell (`string`, `boolean`,
|
|
64
|
-
* `
|
|
65
|
-
* specified.
|
|
63
|
+
* A CellSchema specifies the type of the Cell (`string`, `boolean`, `number`;
|
|
64
|
+
* or `null`, since v7.0), and what the default value can be when an explicit
|
|
65
|
+
* value is not specified.
|
|
66
66
|
*
|
|
67
67
|
* If a default value is provided (and its type is correct), you can be certain
|
|
68
68
|
* that that Cell will always be present in a Row.
|
|
@@ -116,9 +116,9 @@ export type ValuesSchema = {[valueId: Id]: ValueSchema};
|
|
|
116
116
|
* The ValueSchema type describes what values are allowed for keyed Values in a
|
|
117
117
|
* Store.
|
|
118
118
|
*
|
|
119
|
-
* A ValueSchema specifies the type of the Value (`string`, `boolean`,
|
|
120
|
-
* `
|
|
121
|
-
* specified.
|
|
119
|
+
* A ValueSchema specifies the type of the Value (`string`, `boolean`, `number`;
|
|
120
|
+
* or `null` since v7.0), and what the default value can be when an explicit
|
|
121
|
+
* value is not specified.
|
|
122
122
|
*
|
|
123
123
|
* If a default value is provided (and its type is correct), you can be certain
|
|
124
124
|
* that the Value will always be present in a Store.
|
|
@@ -361,12 +361,12 @@ export type Row<
|
|
|
361
361
|
* This has schema-based typing. The following is a simplified representation:
|
|
362
362
|
*
|
|
363
363
|
* ```ts override
|
|
364
|
-
* string | number | boolean;
|
|
364
|
+
* string | number | boolean | null;
|
|
365
365
|
* ```
|
|
366
366
|
*
|
|
367
367
|
* A Cell is used when setting a cell with the setCell method, and when getting
|
|
368
368
|
* it back out again with the getCell method. A Cell is a JavaScript string,
|
|
369
|
-
* number, or
|
|
369
|
+
* number, boolean; or null since v7.0.
|
|
370
370
|
* @example
|
|
371
371
|
* ```js
|
|
372
372
|
* import type {Cell} from 'tinybase';
|
|
@@ -463,12 +463,12 @@ export type Values<
|
|
|
463
463
|
* This has schema-based typing. The following is a simplified representation:
|
|
464
464
|
*
|
|
465
465
|
* ```ts override
|
|
466
|
-
* string | number | boolean;
|
|
466
|
+
* string | number | boolean | null;
|
|
467
467
|
* ```
|
|
468
468
|
*
|
|
469
469
|
* A Value is used when setting a value with the setValue method, and when
|
|
470
470
|
* getting it back out again with the getValue method. A Value is a JavaScript
|
|
471
|
-
* string, number, or
|
|
471
|
+
* string, number, boolean; or null since v7.0.
|
|
472
472
|
* @example
|
|
473
473
|
* ```js
|
|
474
474
|
* import type {Value} from 'tinybase';
|
|
@@ -2675,13 +2675,14 @@ export type StoreListenerStats = {
|
|
|
2675
2675
|
*
|
|
2676
2676
|
* The keyed value support is best thought of as a flat JavaScript object. The
|
|
2677
2677
|
* Store contains a number of Value objects, each with a unique ID, and which is
|
|
2678
|
-
* a string, boolean, or
|
|
2678
|
+
* a string, boolean, number; or null since v7.0.
|
|
2679
2679
|
*
|
|
2680
2680
|
* ```json
|
|
2681
2681
|
* { // Store
|
|
2682
2682
|
* "value1": "one", // Value (string)
|
|
2683
2683
|
* "value2": true, // Value (boolean)
|
|
2684
2684
|
* "value3": 3, // Value (number)
|
|
2685
|
+
* "value4": null, // Value (null since v7.0)
|
|
2685
2686
|
* ...
|
|
2686
2687
|
* }
|
|
2687
2688
|
* ```
|
|
@@ -2698,7 +2699,7 @@ export type StoreListenerStats = {
|
|
|
2698
2699
|
* - Each Table contains a number of Row objects.
|
|
2699
2700
|
* - Each Row contains a number of Cell objects.
|
|
2700
2701
|
*
|
|
2701
|
-
* A Cell is a string, boolean, or
|
|
2702
|
+
* A Cell is a string, boolean, number; or null since v7.0.
|
|
2702
2703
|
*
|
|
2703
2704
|
* The members of each level of this hierarchy are identified with a unique Id
|
|
2704
2705
|
* (which is a string). In other words you can naively think of a Store as a
|
|
@@ -2711,6 +2712,7 @@ export type StoreListenerStats = {
|
|
|
2711
2712
|
* "cell1": "one", // Cell (string)
|
|
2712
2713
|
* "cell2": true, // Cell (boolean)
|
|
2713
2714
|
* "cell3": 3, // Cell (number)
|
|
2715
|
+
* "cell4": null, // Cell (null since v7.0)
|
|
2714
2716
|
* ...
|
|
2715
2717
|
* },
|
|
2716
2718
|
* ...
|
|
@@ -2843,6 +2845,7 @@ export type StoreListenerStats = {
|
|
|
2843
2845
|
* @see Hello World demos
|
|
2844
2846
|
* @see Todo App demos
|
|
2845
2847
|
* @category Store
|
|
2848
|
+
* @essential Creating stores
|
|
2846
2849
|
* @since v1.0.0
|
|
2847
2850
|
*/
|
|
2848
2851
|
export interface Store<in out Schemas extends OptionalSchemas> {
|
|
@@ -3363,6 +3366,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
3363
3366
|
* // -> {}
|
|
3364
3367
|
* ```
|
|
3365
3368
|
* @category Getter
|
|
3369
|
+
* @essential Getting data
|
|
3366
3370
|
* @since v1.0.0
|
|
3367
3371
|
*/
|
|
3368
3372
|
getRow<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
@@ -3454,6 +3458,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
3454
3458
|
* // -> undefined
|
|
3455
3459
|
* ```
|
|
3456
3460
|
* @category Getter
|
|
3461
|
+
* @essential Getting data
|
|
3457
3462
|
* @since v1.0.0
|
|
3458
3463
|
*/
|
|
3459
3464
|
getCell<
|
|
@@ -3574,6 +3579,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
3574
3579
|
* // -> undefined
|
|
3575
3580
|
* ```
|
|
3576
3581
|
* @category Getter
|
|
3582
|
+
* @essential Getting data
|
|
3577
3583
|
* @since v3.0.0
|
|
3578
3584
|
*/
|
|
3579
3585
|
getValue<ValueId extends ValueIdFromSchema<Schemas[1]>>(
|
|
@@ -4310,6 +4316,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
4310
4316
|
* // -> {pets: {fido: {color: 'brown'}}}
|
|
4311
4317
|
* ```
|
|
4312
4318
|
* @category Setter
|
|
4319
|
+
* @essential Setting data
|
|
4313
4320
|
* @since v1.0.0
|
|
4314
4321
|
*/
|
|
4315
4322
|
setRow<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
@@ -4386,6 +4393,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
4386
4393
|
* // -> {pets: {'0': {species: 'dog'}, '1': {species: 'cat'}}}
|
|
4387
4394
|
* ```
|
|
4388
4395
|
* @category Setter
|
|
4396
|
+
* @essential Setting data
|
|
4389
4397
|
* @since v1.0.0
|
|
4390
4398
|
*/
|
|
4391
4399
|
addRow<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
@@ -4526,6 +4534,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
4526
4534
|
* // -> {pets: {fido: {species: 'dog'}}}
|
|
4527
4535
|
* ```
|
|
4528
4536
|
* @category Setter
|
|
4537
|
+
* @essential Setting data
|
|
4529
4538
|
* @since v1.0.0
|
|
4530
4539
|
*/
|
|
4531
4540
|
setCell<
|
|
@@ -4717,6 +4726,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
4717
4726
|
* // -> {employees: 3}
|
|
4718
4727
|
* ```
|
|
4719
4728
|
* @category Setter
|
|
4729
|
+
* @essential Setting data
|
|
4720
4730
|
* @since v3.0.0
|
|
4721
4731
|
*/
|
|
4722
4732
|
setValue<ValueId extends ValueIdFromSchema<Schemas[1]>>(
|
|
@@ -4759,7 +4769,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
4759
4769
|
* .setTables({pets: {fido: {species: 'dog', color: 'brown'}}})
|
|
4760
4770
|
* .setValues({open: true});
|
|
4761
4771
|
*
|
|
4762
|
-
* store.applyChanges([{pets: {fido: {color: 'black'}}}, {open:
|
|
4772
|
+
* store.applyChanges([{pets: {fido: {color: 'black'}}}, {open: undefined}]);
|
|
4763
4773
|
* console.log(store.getTables());
|
|
4764
4774
|
* // -> {pets: {fido: {species: 'dog', color: 'black'}}}
|
|
4765
4775
|
* console.log(store.getValues());
|
|
@@ -5572,6 +5582,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
5572
5582
|
* // -> {open: true}
|
|
5573
5583
|
* ```
|
|
5574
5584
|
* @category Transaction
|
|
5585
|
+
* @essential Setting data
|
|
5575
5586
|
* @since v1.0.0
|
|
5576
5587
|
*/
|
|
5577
5588
|
transaction<Return>(
|
|
@@ -7551,6 +7562,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
7551
7562
|
* store.delListener(listenerId);
|
|
7552
7563
|
* ```
|
|
7553
7564
|
* @category Listener
|
|
7565
|
+
* @essential Listening for changes
|
|
7554
7566
|
* @since v1.0.0
|
|
7555
7567
|
*/
|
|
7556
7568
|
addRowListener<
|
|
@@ -7973,6 +7985,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
7973
7985
|
* store.delListener(listenerId);
|
|
7974
7986
|
* ```
|
|
7975
7987
|
* @category Listener
|
|
7988
|
+
* @essential Listening for changes
|
|
7976
7989
|
* @since v1.0.0
|
|
7977
7990
|
*/
|
|
7978
7991
|
addCellListener<
|
|
@@ -8438,6 +8451,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
8438
8451
|
* store.delListener(listenerId);
|
|
8439
8452
|
* ```
|
|
8440
8453
|
* @category Listener
|
|
8454
|
+
* @essential Listening for changes
|
|
8441
8455
|
* @since v3.0.0
|
|
8442
8456
|
*/
|
|
8443
8457
|
addValueListener<ValueIdOrNull extends ValueIdFromSchema<Schemas[1]> | null>(
|
|
@@ -9408,6 +9422,7 @@ export interface Store<in out Schemas extends OptionalSchemas> {
|
|
|
9408
9422
|
* ```
|
|
9409
9423
|
* @see The Basics guides
|
|
9410
9424
|
* @category Creation
|
|
9425
|
+
* @essential Creating stores
|
|
9411
9426
|
* @since v1.0.0
|
|
9412
9427
|
*/
|
|
9413
9428
|
export function createStore(): Store<NoSchemas>;
|
|
@@ -198,6 +198,7 @@ export type SynchronizerStats = {
|
|
|
198
198
|
* await synchronizer2.destroy();
|
|
199
199
|
* ```
|
|
200
200
|
* @category Synchronizer
|
|
201
|
+
* @essential Synchronizing stores
|
|
201
202
|
* @since v5.0.0
|
|
202
203
|
*/
|
|
203
204
|
export interface Synchronizer extends Persister<Persists.MergeableStoreOnly> {
|
|
@@ -24,8 +24,9 @@ import type {Receive, Send, Synchronizer} from '../../with-schemas/index.d.ts';
|
|
|
24
24
|
* @category Synchronizer
|
|
25
25
|
* @since v5.0.0
|
|
26
26
|
*/
|
|
27
|
-
export interface BroadcastChannelSynchronizer<
|
|
28
|
-
extends
|
|
27
|
+
export interface BroadcastChannelSynchronizer<
|
|
28
|
+
Schemas extends OptionalSchemas,
|
|
29
|
+
> extends Synchronizer<Schemas> {
|
|
29
30
|
/**
|
|
30
31
|
* The getChannelName method returns the name of the channel being used for
|
|
31
32
|
* synchronization.
|
|
@@ -35,8 +35,9 @@ import type {Receive, Send, Synchronizer} from '../../with-schemas/index.d.ts';
|
|
|
35
35
|
* @category Synchronizer
|
|
36
36
|
* @since v5.0.0
|
|
37
37
|
*/
|
|
38
|
-
export interface LocalSynchronizer<
|
|
39
|
-
extends
|
|
38
|
+
export interface LocalSynchronizer<
|
|
39
|
+
Schemas extends OptionalSchemas,
|
|
40
|
+
> extends Synchronizer<Schemas> {}
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
43
|
* The createLocalSynchronizer function creates a LocalSynchronizer object that
|
|
@@ -38,8 +38,9 @@ export type WebSocketTypes = WebSocket | WsWebSocket;
|
|
|
38
38
|
* @category Synchronizer
|
|
39
39
|
* @since v5.0.0
|
|
40
40
|
*/
|
|
41
|
-
export interface WsSynchronizer<
|
|
42
|
-
extends
|
|
41
|
+
export interface WsSynchronizer<
|
|
42
|
+
WebSocketType extends WebSocketTypes,
|
|
43
|
+
> extends Synchronizer {
|
|
43
44
|
/**
|
|
44
45
|
* The getWebSocket method returns a reference to the WebSocket being used for
|
|
45
46
|
* synchronization.
|
|
@@ -148,6 +149,7 @@ export interface WsSynchronizer<WebSocketType extends WebSocketTypes>
|
|
|
148
149
|
* await server.destroy();
|
|
149
150
|
* ```
|
|
150
151
|
* @category Creation
|
|
152
|
+
* @essential Synchronizing stores
|
|
151
153
|
* @since v5.0.0
|
|
152
154
|
*/
|
|
153
155
|
export function createWsSynchronizer<WebSocketType extends WebSocketTypes>(
|
|
@@ -537,7 +537,7 @@ export interface WsServer {
|
|
|
537
537
|
* import {createMergeableStore} from 'tinybase';
|
|
538
538
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
539
539
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
540
|
-
* import {WebSocketServer} from 'ws';
|
|
540
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
541
541
|
*
|
|
542
542
|
* // Server
|
|
543
543
|
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
@@ -583,7 +583,7 @@ export interface WsServer {
|
|
|
583
583
|
* import {createFilePersister} from 'tinybase/persisters/persister-file';
|
|
584
584
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
585
585
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
586
|
-
* import {WebSocketServer} from 'ws';
|
|
586
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
587
587
|
*
|
|
588
588
|
* // Server
|
|
589
589
|
* const server = createWsServer(
|
|
@@ -591,7 +591,7 @@ export interface WsServer {
|
|
|
591
591
|
* (pathId) =>
|
|
592
592
|
* createFilePersister(
|
|
593
593
|
* createMergeableStore(),
|
|
594
|
-
* pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
594
|
+
* './tmp/' + pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
595
595
|
* ),
|
|
596
596
|
* );
|
|
597
597
|
*
|
|
@@ -641,7 +641,7 @@ export interface WsServer {
|
|
|
641
641
|
* await server.destroy();
|
|
642
642
|
*
|
|
643
643
|
* // Remove file for the purposes of this demo.
|
|
644
|
-
* rmSync('petShop.json');
|
|
644
|
+
* rmSync('./tmp/petShop.json');
|
|
645
645
|
* ```
|
|
646
646
|
* @example
|
|
647
647
|
* This example creates a WsServer that persists a MergeableStore to file that
|
|
@@ -654,7 +654,7 @@ export interface WsServer {
|
|
|
654
654
|
* import {createFilePersister} from 'tinybase/persisters/persister-file';
|
|
655
655
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
656
656
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
657
|
-
* import {WebSocketServer} from 'ws';
|
|
657
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
658
658
|
*
|
|
659
659
|
* // Server
|
|
660
660
|
* const server = createWsServer(
|
|
@@ -662,7 +662,7 @@ export interface WsServer {
|
|
|
662
662
|
* (pathId) => [
|
|
663
663
|
* createFilePersister(
|
|
664
664
|
* createMergeableStore(),
|
|
665
|
-
* pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
665
|
+
* './tmp/' + pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
666
666
|
* ),
|
|
667
667
|
* (store) => store.setValue('pathId', pathId),
|
|
668
668
|
* ],
|
|
@@ -684,7 +684,7 @@ export interface WsServer {
|
|
|
684
684
|
* await server.destroy();
|
|
685
685
|
*
|
|
686
686
|
* // Remove file for the purposes of this demo.
|
|
687
|
-
* rmSync('petShop.json');
|
|
687
|
+
* rmSync('./tmp/petShop.json');
|
|
688
688
|
* ```
|
|
689
689
|
* @example
|
|
690
690
|
* This example creates a WsServer with a custom listener that displays
|
|
@@ -564,7 +564,7 @@ export interface WsServer {
|
|
|
564
564
|
* import {createMergeableStore} from 'tinybase';
|
|
565
565
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
566
566
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
567
|
-
* import {WebSocketServer} from 'ws';
|
|
567
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
568
568
|
*
|
|
569
569
|
* // Server
|
|
570
570
|
* const server = createWsServer(new WebSocketServer({port: 8047}));
|
|
@@ -610,7 +610,7 @@ export interface WsServer {
|
|
|
610
610
|
* import {createFilePersister} from 'tinybase/persisters/persister-file';
|
|
611
611
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
612
612
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
613
|
-
* import {WebSocketServer} from 'ws';
|
|
613
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
614
614
|
*
|
|
615
615
|
* // Server
|
|
616
616
|
* const server = createWsServer(
|
|
@@ -618,7 +618,7 @@ export interface WsServer {
|
|
|
618
618
|
* (pathId) =>
|
|
619
619
|
* createFilePersister(
|
|
620
620
|
* createMergeableStore(),
|
|
621
|
-
* pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
621
|
+
* './tmp/' + pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
622
622
|
* ),
|
|
623
623
|
* );
|
|
624
624
|
*
|
|
@@ -668,7 +668,7 @@ export interface WsServer {
|
|
|
668
668
|
* await server.destroy();
|
|
669
669
|
*
|
|
670
670
|
* // Remove file for the purposes of this demo.
|
|
671
|
-
* rmSync('petShop.json');
|
|
671
|
+
* rmSync('./tmp/petShop.json');
|
|
672
672
|
* ```
|
|
673
673
|
* @example
|
|
674
674
|
* This example creates a WsServer that persists a MergeableStore to file that
|
|
@@ -681,7 +681,7 @@ export interface WsServer {
|
|
|
681
681
|
* import {createFilePersister} from 'tinybase/persisters/persister-file';
|
|
682
682
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
683
683
|
* import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
|
|
684
|
-
* import {WebSocketServer} from 'ws';
|
|
684
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
685
685
|
*
|
|
686
686
|
* // Server
|
|
687
687
|
* const server = createWsServer(
|
|
@@ -689,7 +689,7 @@ export interface WsServer {
|
|
|
689
689
|
* (pathId) => [
|
|
690
690
|
* createFilePersister(
|
|
691
691
|
* createMergeableStore(),
|
|
692
|
-
* pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
692
|
+
* './tmp/' + pathId.replace(/[^a-zA-Z0-9]/g, '-') + '.json',
|
|
693
693
|
* ),
|
|
694
694
|
* (store) => store.setValue('pathId', pathId),
|
|
695
695
|
* ],
|
|
@@ -711,7 +711,7 @@ export interface WsServer {
|
|
|
711
711
|
* await server.destroy();
|
|
712
712
|
*
|
|
713
713
|
* // Remove file for the purposes of this demo.
|
|
714
|
-
* rmSync('petShop.json');
|
|
714
|
+
* rmSync('./tmp/petShop.json');
|
|
715
715
|
* ```
|
|
716
716
|
* @example
|
|
717
717
|
* This example creates a WsServer with a custom listener that displays
|
|
@@ -28,6 +28,7 @@ import type {Persister, Persists} from '../../persisters/index.d.ts';
|
|
|
28
28
|
* TinyBase uses (the constructor, `fetch`, `webSocketMessage`, and
|
|
29
29
|
* `webSocketClose`) if you further override them.
|
|
30
30
|
* @category Creation
|
|
31
|
+
* @essential Synchronizing stores
|
|
31
32
|
* @since v5.4.0
|
|
32
33
|
*/
|
|
33
34
|
export class WsServerDurableObject<Env = unknown> extends DurableObject<Env> {
|
|
@@ -101,7 +101,7 @@ export interface WsServerSimple {
|
|
|
101
101
|
* import {createMergeableStore} from 'tinybase';
|
|
102
102
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
103
103
|
* import {createWsServerSimple} from 'tinybase/synchronizers/synchronizer-ws-server-simple';
|
|
104
|
-
* import {WebSocketServer} from 'ws';
|
|
104
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
105
105
|
*
|
|
106
106
|
* // Server
|
|
107
107
|
* const server = createWsServerSimple(new WebSocketServer({port: 8053}));
|
|
@@ -101,7 +101,7 @@ export interface WsServerSimple {
|
|
|
101
101
|
* import {createMergeableStore} from 'tinybase';
|
|
102
102
|
* import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
|
|
103
103
|
* import {createWsServerSimple} from 'tinybase/synchronizers/synchronizer-ws-server-simple';
|
|
104
|
-
* import {WebSocketServer} from 'ws';
|
|
104
|
+
* import {WebSocket, WebSocketServer} from 'ws';
|
|
105
105
|
*
|
|
106
106
|
* // Server
|
|
107
107
|
* const server = createWsServerSimple(new WebSocketServer({port: 8053}));
|
|
@@ -194,10 +194,12 @@ export type SynchronizerStats = {
|
|
|
194
194
|
* await synchronizer2.destroy();
|
|
195
195
|
* ```
|
|
196
196
|
* @category Synchronizer
|
|
197
|
+
* @essential Synchronizing stores
|
|
197
198
|
* @since v5.0.0
|
|
198
199
|
*/
|
|
199
|
-
export interface Synchronizer<
|
|
200
|
-
extends
|
|
200
|
+
export interface Synchronizer<
|
|
201
|
+
Schemas extends OptionalSchemas,
|
|
202
|
+
> extends Persister<Schemas, Persists.MergeableStoreOnly> {
|
|
201
203
|
/**
|
|
202
204
|
* The startSync method is used to start the process of synchronization
|
|
203
205
|
* between this instance and another matching Synchronizer.
|