tinybase 4.4.0-beta.0 → 4.4.0-beta.2
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/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/cjs/checkpoints.cjs +1 -1
- package/lib/cjs/checkpoints.cjs.gz +0 -0
- package/lib/cjs/indexes.cjs +1 -1
- package/lib/cjs/indexes.cjs.gz +0 -0
- package/lib/cjs/metrics.cjs +1 -1
- package/lib/cjs/metrics.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/relationships.cjs +1 -1
- package/lib/cjs/relationships.cjs.gz +0 -0
- package/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/checkpoints.cjs +1 -1
- package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
- package/lib/cjs-es6/indexes.cjs +1 -1
- package/lib/cjs-es6/indexes.cjs.gz +0 -0
- package/lib/cjs-es6/metrics.cjs +1 -1
- package/lib/cjs-es6/metrics.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/relationships.cjs +1 -1
- package/lib/cjs-es6/relationships.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/checkpoints.js +12 -12
- package/lib/debug/indexes.js +9 -9
- package/lib/debug/metrics.js +9 -9
- package/lib/debug/persisters/persister-automerge.js +21 -8
- package/lib/debug/persisters/persister-browser.js +17 -3
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +27 -12
- package/lib/debug/persisters/persister-expo-sqlite.js +27 -12
- package/lib/debug/persisters/persister-file.js +17 -3
- package/lib/debug/persisters/persister-indexed-db.js +21 -8
- package/lib/debug/persisters/persister-partykit-client.js +54 -20
- package/lib/debug/persisters/persister-partykit-server.js +173 -77
- package/lib/debug/persisters/persister-remote.js +17 -3
- package/lib/debug/persisters/persister-sqlite-wasm.js +27 -12
- package/lib/debug/persisters/persister-sqlite3.js +28 -13
- package/lib/debug/persisters/persister-yjs.js +23 -10
- package/lib/debug/persisters.js +16 -4
- package/lib/debug/queries.js +16 -15
- package/lib/debug/relationships.js +9 -9
- package/lib/debug/store.js +130 -35
- package/lib/debug/tinybase.js +142 -41
- package/lib/debug/tools.js +17 -9
- package/lib/debug/ui-react-dom.js +262 -150
- package/lib/debug/ui-react.js +288 -67
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/indexes.js +1 -1
- package/lib/es6/indexes.js.gz +0 -0
- package/lib/es6/metrics.js +1 -1
- package/lib/es6/metrics.js.gz +0 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/relationships.js +1 -1
- package/lib/es6/relationships.js.gz +0 -0
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/persisters/persister-automerge.d.ts +36 -3
- package/lib/types/persisters/persister-browser.d.ts +71 -8
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +42 -8
- package/lib/types/persisters/persister-expo-sqlite.d.ts +40 -7
- package/lib/types/persisters/persister-file.d.ts +34 -3
- package/lib/types/persisters/persister-indexed-db.d.ts +40 -9
- package/lib/types/persisters/persister-partykit-client.d.ts +99 -13
- package/lib/types/persisters/persister-partykit-server.d.ts +414 -9
- package/lib/types/persisters/persister-remote.d.ts +40 -4
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +46 -7
- package/lib/types/persisters/persister-sqlite3.d.ts +40 -7
- package/lib/types/persisters/persister-yjs.d.ts +37 -5
- package/lib/types/persisters.d.ts +10 -10
- package/lib/types/queries.d.ts +24 -0
- package/lib/types/store.d.ts +912 -32
- package/lib/types/tools.d.ts +4 -6
- package/lib/types/ui-react-dom.d.ts +13 -2
- package/lib/types/ui-react.d.ts +1176 -44
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +38 -4
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +75 -10
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +44 -9
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +42 -8
- package/lib/types/with-schemas/persisters/persister-file.d.ts +36 -4
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +42 -10
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +102 -15
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +447 -9
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +42 -5
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +48 -8
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +41 -7
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +39 -6
- package/lib/types/with-schemas/persisters.d.ts +10 -10
- package/lib/types/with-schemas/queries.d.ts +24 -0
- package/lib/types/with-schemas/store.d.ts +1180 -36
- package/lib/types/with-schemas/tools.d.ts +4 -6
- package/lib/types/with-schemas/ui-react-dom.d.ts +21 -4
- package/lib/types/with-schemas/ui-react.d.ts +1382 -71
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/indexes.js +1 -1
- package/lib/umd-es6/indexes.js.gz +0 -0
- package/lib/umd-es6/metrics.js +1 -1
- package/lib/umd-es6/metrics.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/relationships.js +1 -1
- package/lib/umd-es6/relationships.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +42 -40
- package/readme.md +2 -2
|
@@ -15,6 +15,40 @@ import {OptionalSchemas, Store} from '../store';
|
|
|
15
15
|
import {DocHandle} from 'automerge-repo';
|
|
16
16
|
import {Persister} from '../persisters';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* The AutomergePersister interface is a minor extension to the Persister
|
|
20
|
+
* interface.
|
|
21
|
+
*
|
|
22
|
+
* It simply provides an extra getDocHandle method for accessing the Automerge
|
|
23
|
+
* document handler the Store is being persisted to.
|
|
24
|
+
* @since v4.3.14
|
|
25
|
+
*/
|
|
26
|
+
export interface AutomergePersister<Schemas extends OptionalSchemas>
|
|
27
|
+
extends Persister<Schemas> {
|
|
28
|
+
/**
|
|
29
|
+
* The getDocHandle method returns the Automerge document handler the Store is
|
|
30
|
+
* being persisted to.
|
|
31
|
+
* @returns The Automerge document handler.
|
|
32
|
+
* @example
|
|
33
|
+
* This example creates a Persister object against a newly-created Store and
|
|
34
|
+
* then gets the Automerge document handler back out again.
|
|
35
|
+
*
|
|
36
|
+
* ```js
|
|
37
|
+
* const docHandler = new AutomergeRepo.Repo({network: []}).create();
|
|
38
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
39
|
+
* const persister = createAutomergePersister(store, docHandler);
|
|
40
|
+
*
|
|
41
|
+
* console.log(persister.getDocHandle() == docHandler);
|
|
42
|
+
* // -> true
|
|
43
|
+
*
|
|
44
|
+
* persister.destroy();
|
|
45
|
+
* ```
|
|
46
|
+
* @category Getter
|
|
47
|
+
* @since v4.3.14
|
|
48
|
+
*/
|
|
49
|
+
getDocHandle: () => DocHandle<any>;
|
|
50
|
+
}
|
|
51
|
+
|
|
18
52
|
/**
|
|
19
53
|
* The createAutomergePersister function creates a Persister object that can
|
|
20
54
|
* persist the Store to an Automerge document.
|
|
@@ -27,7 +61,7 @@ import {Persister} from '../persisters';
|
|
|
27
61
|
* docHandle: DocHandle<any>,
|
|
28
62
|
* docMapName?: string,
|
|
29
63
|
* onIgnoredError?: (error: any) => void,
|
|
30
|
-
* ):
|
|
64
|
+
* ): AutomergePersister;
|
|
31
65
|
* ```
|
|
32
66
|
*
|
|
33
67
|
* As well as providing a reference to the Store to persist, you must provide
|
|
@@ -39,9 +73,9 @@ import {Persister} from '../persisters';
|
|
|
39
73
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
40
74
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
41
75
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
42
|
-
* @returns A reference to the new
|
|
76
|
+
* @returns A reference to the new AutomergePersister object.
|
|
43
77
|
* @example
|
|
44
|
-
* This example creates a
|
|
78
|
+
* This example creates a AutomergePersister object and persists the Store to an
|
|
45
79
|
* Automerge document.
|
|
46
80
|
*
|
|
47
81
|
* ```js
|
|
@@ -120,4 +154,4 @@ export function createAutomergePersister<Schemas extends OptionalSchemas>(
|
|
|
120
154
|
docHandle: DocHandle<any>,
|
|
121
155
|
docMapName?: string,
|
|
122
156
|
onIgnoredError?: (error: any) => void,
|
|
123
|
-
):
|
|
157
|
+
): AutomergePersister<Schemas>;
|
|
@@ -17,6 +17,71 @@
|
|
|
17
17
|
import {OptionalSchemas, Store} from '../store';
|
|
18
18
|
import {Persister} from '../persisters';
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* The SessionPersister interface is a minor extension to the Persister
|
|
22
|
+
* interface.
|
|
23
|
+
*
|
|
24
|
+
* It simply provides an extra getStorageName method for accessing the unique
|
|
25
|
+
* key of the storage location the Store is being persisted to.
|
|
26
|
+
* @since v4.3.14
|
|
27
|
+
*/
|
|
28
|
+
export interface SessionPersister<Schemas extends OptionalSchemas>
|
|
29
|
+
extends Persister<Schemas> {
|
|
30
|
+
/**
|
|
31
|
+
* The getStorageName method returns the unique key of the storage location
|
|
32
|
+
* the Store is being persisted to.
|
|
33
|
+
* @returns The unique key of the storage location.
|
|
34
|
+
* @example
|
|
35
|
+
* This example creates a Persister object against a newly-created Store and
|
|
36
|
+
* then gets the unique key of the storage location back out again.
|
|
37
|
+
*
|
|
38
|
+
* ```js
|
|
39
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
40
|
+
* const persister = createSessionPersister(store, 'pets');
|
|
41
|
+
*
|
|
42
|
+
* console.log(persister.getStorageName());
|
|
43
|
+
* // -> 'pets'
|
|
44
|
+
*
|
|
45
|
+
* persister.destroy();
|
|
46
|
+
* ```
|
|
47
|
+
* @category Getter
|
|
48
|
+
* @since v4.3.14
|
|
49
|
+
*/
|
|
50
|
+
getStorageName: () => string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The LocalPersister interface is a minor extension to the Persister interface.
|
|
55
|
+
*
|
|
56
|
+
* It simply provides an extra getStorageName method for accessing the unique
|
|
57
|
+
* key of the storage location the Store is being persisted to.
|
|
58
|
+
* @since v4.3.14
|
|
59
|
+
*/
|
|
60
|
+
export interface LocalPersister<Schemas extends OptionalSchemas>
|
|
61
|
+
extends Persister<Schemas> {
|
|
62
|
+
/**
|
|
63
|
+
* The getStorageName method returns the unique key of the storage location
|
|
64
|
+
* the Store is being persisted to.
|
|
65
|
+
* @returns The unique key of the storage location.
|
|
66
|
+
* @example
|
|
67
|
+
* This example creates a Persister object against a newly-created Store and
|
|
68
|
+
* then gets the unique key of the storage location back out again.
|
|
69
|
+
*
|
|
70
|
+
* ```js
|
|
71
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
72
|
+
* const persister = createLocalPersister(store, 'pets');
|
|
73
|
+
*
|
|
74
|
+
* console.log(persister.getStorageName());
|
|
75
|
+
* // -> 'pets'
|
|
76
|
+
*
|
|
77
|
+
* persister.destroy();
|
|
78
|
+
* ```
|
|
79
|
+
* @category Getter
|
|
80
|
+
* @since v4.3.14
|
|
81
|
+
*/
|
|
82
|
+
getStorageName: () => string;
|
|
83
|
+
}
|
|
84
|
+
|
|
20
85
|
/**
|
|
21
86
|
* The createSessionPersister function creates a Persister object that can
|
|
22
87
|
* persist the Store to the browser's session storage.
|
|
@@ -28,7 +93,7 @@ import {Persister} from '../persisters';
|
|
|
28
93
|
* store: Store,
|
|
29
94
|
* storageName: string,
|
|
30
95
|
* onIgnoredError?: (error: any) => void,
|
|
31
|
-
* ):
|
|
96
|
+
* ): SessionPersister;
|
|
32
97
|
* ```
|
|
33
98
|
*
|
|
34
99
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -39,9 +104,9 @@ import {Persister} from '../persisters';
|
|
|
39
104
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
40
105
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
41
106
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
42
|
-
* @returns A reference to the new
|
|
107
|
+
* @returns A reference to the new SessionPersister object.
|
|
43
108
|
* @example
|
|
44
|
-
* This example creates a
|
|
109
|
+
* This example creates a SessionPersister object and persists the Store to the
|
|
45
110
|
* browser's session storage.
|
|
46
111
|
*
|
|
47
112
|
* ```js
|
|
@@ -61,11 +126,11 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
|
61
126
|
store: Store<Schemas>,
|
|
62
127
|
storageName: string,
|
|
63
128
|
onIgnoredError?: (error: any) => void,
|
|
64
|
-
):
|
|
129
|
+
): SessionPersister<Schemas>;
|
|
65
130
|
|
|
66
131
|
/**
|
|
67
|
-
* The createLocalPersister function creates a Persister object that can
|
|
68
|
-
*
|
|
132
|
+
* The createLocalPersister function creates a Persister object that can persist
|
|
133
|
+
* the Store to the browser's local storage.
|
|
69
134
|
*
|
|
70
135
|
* This has schema-based typing. The following is a simplified representation:
|
|
71
136
|
*
|
|
@@ -74,7 +139,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
|
74
139
|
* store: Store,
|
|
75
140
|
* storageName: string,
|
|
76
141
|
* onIgnoredError?: (error: any) => void,
|
|
77
|
-
* ):
|
|
142
|
+
* ): LocalPersister;
|
|
78
143
|
* ```
|
|
79
144
|
*
|
|
80
145
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -85,9 +150,9 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
|
|
|
85
150
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
86
151
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
87
152
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
88
|
-
* @returns A reference to the new
|
|
153
|
+
* @returns A reference to the new LocalPersister object.
|
|
89
154
|
* @example
|
|
90
|
-
* This example creates a
|
|
155
|
+
* This example creates a LocalPersister object and persists the Store to the
|
|
91
156
|
* browser's local storage.
|
|
92
157
|
*
|
|
93
158
|
* ```js
|
|
@@ -107,4 +172,4 @@ export function createLocalPersister<Schemas extends OptionalSchemas>(
|
|
|
107
172
|
store: Store<Schemas>,
|
|
108
173
|
storageName: string,
|
|
109
174
|
onIgnoredError?: (error: any) => void,
|
|
110
|
-
):
|
|
175
|
+
): LocalPersister<Schemas>;
|
|
@@ -12,6 +12,41 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
|
12
12
|
import {OptionalSchemas, Store} from '../store';
|
|
13
13
|
import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* The CrSqliteWasmPersister interface is a minor extension to the Persister
|
|
17
|
+
* interface.
|
|
18
|
+
*
|
|
19
|
+
* It simply provides an extra getDb method for accessing a reference to the
|
|
20
|
+
* database instance the Store is being persisted to.
|
|
21
|
+
* @since v4.3.14
|
|
22
|
+
*/
|
|
23
|
+
export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
24
|
+
extends Persister<Schemas> {
|
|
25
|
+
/**
|
|
26
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
27
|
+
* being persisted to.
|
|
28
|
+
* @returns A reference to the database instance.
|
|
29
|
+
* @example
|
|
30
|
+
* This example creates a Persister object against a newly-created Store and
|
|
31
|
+
* then gets the database instance back out again.
|
|
32
|
+
*
|
|
33
|
+
* ```js
|
|
34
|
+
* const crSqlite3 = await initWasm();
|
|
35
|
+
* const db = await crSqlite3.open();
|
|
36
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
37
|
+
* const persister = createCrSqliteWasmPersister(store, db, 'my_tinybase');
|
|
38
|
+
*
|
|
39
|
+
* console.log(persister.getDb() == db);
|
|
40
|
+
* // -> true
|
|
41
|
+
*
|
|
42
|
+
* persister.destroy();
|
|
43
|
+
* ```
|
|
44
|
+
* @category Getter
|
|
45
|
+
* @since v4.3.14
|
|
46
|
+
*/
|
|
47
|
+
getDb: () => DB;
|
|
48
|
+
}
|
|
49
|
+
|
|
15
50
|
/**
|
|
16
51
|
* The createCrSqliteWasmPersister function creates a Persister object that can
|
|
17
52
|
* persist the Store to a local CR-SQLite database (in an appropriate
|
|
@@ -26,7 +61,7 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
|
26
61
|
* configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
27
62
|
* onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
28
63
|
* onIgnoredError?: (error: any) => void,
|
|
29
|
-
* ):
|
|
64
|
+
* ): CrSqliteWasmPersister;
|
|
30
65
|
* ```
|
|
31
66
|
*
|
|
32
67
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -54,12 +89,12 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
|
54
89
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
55
90
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
56
91
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
57
|
-
* @returns A reference to the new
|
|
92
|
+
* @returns A reference to the new CrSqliteWasmPersister object.
|
|
58
93
|
* @example
|
|
59
|
-
* This example creates a
|
|
60
|
-
* CR-SQLite database as a JSON serialization into the `my_tinybase`
|
|
61
|
-
* makes a change to the database directly and then reloads it back
|
|
62
|
-
* Store.
|
|
94
|
+
* This example creates a CrSqliteWasmPersister object and persists the Store to
|
|
95
|
+
* a local CR-SQLite database as a JSON serialization into the `my_tinybase`
|
|
96
|
+
* table. It makes a change to the database directly and then reloads it back
|
|
97
|
+
* into the Store.
|
|
63
98
|
*
|
|
64
99
|
* ```js
|
|
65
100
|
* const crSqlite3 = await initWasm();
|
|
@@ -84,8 +119,8 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
|
|
|
84
119
|
* persister.destroy();
|
|
85
120
|
* ```
|
|
86
121
|
* @example
|
|
87
|
-
* This example creates a
|
|
88
|
-
* SQLite database with tabular mapping.
|
|
122
|
+
* This example creates a CrSqliteWasmPersister object and persists the Store to
|
|
123
|
+
* a local SQLite database with tabular mapping.
|
|
89
124
|
*
|
|
90
125
|
* ```js
|
|
91
126
|
* const crSqlite3 = await initWasm();
|
|
@@ -116,4 +151,4 @@ export function createCrSqliteWasmPersister<Schemas extends OptionalSchemas>(
|
|
|
116
151
|
configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
|
|
117
152
|
onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
118
153
|
onIgnoredError?: (error: any) => void,
|
|
119
|
-
):
|
|
154
|
+
): CrSqliteWasmPersister<Schemas>;
|
|
@@ -15,6 +15,40 @@ import {DatabasePersisterConfig, Persister} from '../persisters';
|
|
|
15
15
|
import {OptionalSchemas, Store} from '../store';
|
|
16
16
|
import {SQLiteDatabase} from 'expo-sqlite';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* The ExpoSqlitePersister interface is a minor extension to the Persister
|
|
20
|
+
* interface.
|
|
21
|
+
*
|
|
22
|
+
* It simply provides an extra getDb method for accessing a reference to the
|
|
23
|
+
* database instance the Store is being persisted to.
|
|
24
|
+
* @since v4.3.14
|
|
25
|
+
*/
|
|
26
|
+
export interface ExpoSqlitePersister<Schemas extends OptionalSchemas>
|
|
27
|
+
extends Persister<Schemas> {
|
|
28
|
+
/**
|
|
29
|
+
* The getDb method returns a reference to the database instance the Store is
|
|
30
|
+
* being persisted to.
|
|
31
|
+
* @returns A reference to the database instance.
|
|
32
|
+
* @example
|
|
33
|
+
* This example creates a Persister object against a newly-created Store and
|
|
34
|
+
* then gets the database instance back out again.
|
|
35
|
+
*
|
|
36
|
+
* ```js yolo
|
|
37
|
+
* const db = SQLite.openDatabase('my.db');
|
|
38
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
39
|
+
* const persister = createExpoSqlitePersister(store, db, 'my_tinybase');
|
|
40
|
+
*
|
|
41
|
+
* console.log(persister.getDb() == db);
|
|
42
|
+
* // -> true
|
|
43
|
+
*
|
|
44
|
+
* persister.destroy();
|
|
45
|
+
* ```
|
|
46
|
+
* @category Getter
|
|
47
|
+
* @since v4.3.14
|
|
48
|
+
*/
|
|
49
|
+
getDb: () => SQLiteDatabase;
|
|
50
|
+
}
|
|
51
|
+
|
|
18
52
|
/**
|
|
19
53
|
* The createExpoSqlitePersister function creates a Persister object that can
|
|
20
54
|
* persist the Store to a local Expo-SQLite database (in an appropriate React
|
|
@@ -29,7 +63,7 @@ import {SQLiteDatabase} from 'expo-sqlite';
|
|
|
29
63
|
* configOrStoreTableName?: DatabasePersisterConfig | string,
|
|
30
64
|
* onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
31
65
|
* onIgnoredError?: (error: any) => void,
|
|
32
|
-
* ):
|
|
66
|
+
* ): ExpoSqlitePersister;
|
|
33
67
|
* ```
|
|
34
68
|
*
|
|
35
69
|
* Note that this Persister is currently experimental as Expo themselves iterate
|
|
@@ -61,11 +95,11 @@ import {SQLiteDatabase} from 'expo-sqlite';
|
|
|
61
95
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
62
96
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
63
97
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
64
|
-
* @returns A reference to the new
|
|
98
|
+
* @returns A reference to the new ExpoSqlitePersister object.
|
|
65
99
|
* @example
|
|
66
|
-
* This example creates a
|
|
67
|
-
* SQLite database as a JSON serialization into the `my_tinybase` table.
|
|
68
|
-
* makes a change to the database directly and then reloads it back into the
|
|
100
|
+
* This example creates a ExpoSqlitePersister object and persists the Store to a
|
|
101
|
+
* local SQLite database as a JSON serialization into the `my_tinybase` table.
|
|
102
|
+
* It makes a change to the database directly and then reloads it back into the
|
|
69
103
|
* Store.
|
|
70
104
|
*
|
|
71
105
|
* ```js yolo
|
|
@@ -97,8 +131,8 @@ import {SQLiteDatabase} from 'expo-sqlite';
|
|
|
97
131
|
* persister.destroy();
|
|
98
132
|
* ```
|
|
99
133
|
* @example
|
|
100
|
-
* This example creates a
|
|
101
|
-
* SQLite database with tabular mapping.
|
|
134
|
+
* This example creates a ExpoSqlitePersister object and persists the Store to a
|
|
135
|
+
* local SQLite database with tabular mapping.
|
|
102
136
|
*
|
|
103
137
|
* ```js yolo
|
|
104
138
|
* const db = SQLite.openDatabase('my.db');
|
|
@@ -137,4 +171,4 @@ export function createExpoSqlitePersister<Schemas extends OptionalSchemas>(
|
|
|
137
171
|
configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
|
|
138
172
|
onSqlCommand?: (sql: string, args?: any[]) => void,
|
|
139
173
|
onIgnoredError?: (error: any) => void,
|
|
140
|
-
):
|
|
174
|
+
): ExpoSqlitePersister<Schemas>;
|
|
@@ -9,6 +9,38 @@
|
|
|
9
9
|
import {OptionalSchemas, Store} from '../store';
|
|
10
10
|
import {Persister} from '../persisters';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* The FilePersister interface is a minor extension to the Persister interface.
|
|
14
|
+
*
|
|
15
|
+
* It simply provides an extra getFilePath method for accessing the location of
|
|
16
|
+
* the local file the Store is being persisted to.
|
|
17
|
+
* @since v4.3.14
|
|
18
|
+
*/
|
|
19
|
+
export interface FilePersister<Schemas extends OptionalSchemas>
|
|
20
|
+
extends Persister<Schemas> {
|
|
21
|
+
/**
|
|
22
|
+
* The getFilePath method returns the location of the local file the Store is
|
|
23
|
+
* being persisted to.
|
|
24
|
+
* @returns The location of the local file.
|
|
25
|
+
* @example
|
|
26
|
+
* This example creates a Persister object against a newly-created Store and
|
|
27
|
+
* then gets the file location back out again.
|
|
28
|
+
*
|
|
29
|
+
* ```js
|
|
30
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
31
|
+
* const persister = createFilePersister(store, '/app/persisted.json');
|
|
32
|
+
*
|
|
33
|
+
* console.log(persister.getFilePath());
|
|
34
|
+
* // -> '/app/persisted.json'
|
|
35
|
+
*
|
|
36
|
+
* persister.destroy();
|
|
37
|
+
* ```
|
|
38
|
+
* @category Getter
|
|
39
|
+
* @since v4.3.14
|
|
40
|
+
*/
|
|
41
|
+
getFilePath: () => string;
|
|
42
|
+
}
|
|
43
|
+
|
|
12
44
|
/**
|
|
13
45
|
* The createFilePersister function creates a Persister object that can persist
|
|
14
46
|
* the Store to a local file (in an appropriate environment).
|
|
@@ -20,7 +52,7 @@ import {Persister} from '../persisters';
|
|
|
20
52
|
* store: Store,
|
|
21
53
|
* filePath: string,
|
|
22
54
|
* onIgnoredError?: (error: any) => void,
|
|
23
|
-
* ):
|
|
55
|
+
* ): FilePersister;
|
|
24
56
|
* ```
|
|
25
57
|
*
|
|
26
58
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -30,9 +62,9 @@ import {Persister} from '../persisters';
|
|
|
30
62
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
31
63
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
32
64
|
* debugging persistence issues in a development environment, since v4.0.4.
|
|
33
|
-
* @returns A reference to the new
|
|
65
|
+
* @returns A reference to the new FilePersister object.
|
|
34
66
|
* @example
|
|
35
|
-
* This example creates a
|
|
67
|
+
* This example creates a FilePersister object and persists the Store to a local
|
|
36
68
|
* file.
|
|
37
69
|
*
|
|
38
70
|
* ```js yolo
|
|
@@ -53,4 +85,4 @@ export function createFilePersister<Schemas extends OptionalSchemas>(
|
|
|
53
85
|
store: Store<Schemas>,
|
|
54
86
|
filePath: string,
|
|
55
87
|
onIgnoredError?: (error: any) => void,
|
|
56
|
-
):
|
|
88
|
+
): FilePersister<Schemas>;
|
|
@@ -9,6 +9,39 @@
|
|
|
9
9
|
import {OptionalSchemas, Store} from '../store';
|
|
10
10
|
import {Persister} from '../persisters';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* The IndexedDbPersister interface is a minor extension to the Persister
|
|
14
|
+
* interface.
|
|
15
|
+
*
|
|
16
|
+
* It simply provides an extra getDbName method for accessing the unique key of
|
|
17
|
+
* the IndexedDB the Store is being persisted to.
|
|
18
|
+
* @since v4.3.14
|
|
19
|
+
*/
|
|
20
|
+
export interface IndexedDbPersister<Schemas extends OptionalSchemas>
|
|
21
|
+
extends Persister<Schemas> {
|
|
22
|
+
/**
|
|
23
|
+
* The getDbName method returns the unique key of the IndexedDB the Store is
|
|
24
|
+
* being persisted to.
|
|
25
|
+
* @returns The unique key of the IndexedDB.
|
|
26
|
+
* @example
|
|
27
|
+
* This example creates a Persister object against a newly-created Store and
|
|
28
|
+
* then gets the unique key of the IndexedDB back out again.
|
|
29
|
+
*
|
|
30
|
+
* ```js
|
|
31
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
32
|
+
* const persister = createIndexedDbPersister(store, 'petStore');
|
|
33
|
+
*
|
|
34
|
+
* console.log(persister.getDbName());
|
|
35
|
+
* // -> 'petStore'
|
|
36
|
+
*
|
|
37
|
+
* persister.destroy();
|
|
38
|
+
* ```
|
|
39
|
+
* @category Getter
|
|
40
|
+
* @since v4.3.14
|
|
41
|
+
*/
|
|
42
|
+
getDbName: () => string;
|
|
43
|
+
}
|
|
44
|
+
|
|
12
45
|
/**
|
|
13
46
|
* The createIndexedDbPersister function creates a Persister object that can
|
|
14
47
|
* persist the Store to the browser's IndexedDB storage.
|
|
@@ -21,7 +54,7 @@ import {Persister} from '../persisters';
|
|
|
21
54
|
* dbName: string,
|
|
22
55
|
* autoLoadIntervalSeconds?: number,
|
|
23
56
|
* onIgnoredError?: (error: any) => void,
|
|
24
|
-
* ):
|
|
57
|
+
* ): IndexedDbPersister;
|
|
25
58
|
* ```
|
|
26
59
|
*
|
|
27
60
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -45,17 +78,16 @@ import {Persister} from '../persisters';
|
|
|
45
78
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
46
79
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
47
80
|
* debugging persistence issues in a development environment.
|
|
48
|
-
* @returns A reference to the new
|
|
81
|
+
* @returns A reference to the new IndexedDbPersister object.
|
|
49
82
|
* @example
|
|
50
|
-
* This example creates a
|
|
51
|
-
* browser's IndexedDB storage.
|
|
83
|
+
* This example creates a IndexedDbPersister object and persists the Store to
|
|
84
|
+
* the browser's IndexedDB storage.
|
|
52
85
|
*
|
|
53
86
|
* ```js
|
|
54
|
-
* const store =
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* .setValues({open: true});
|
|
87
|
+
* const store = createStore()
|
|
88
|
+
* .setTable('pets', {fido: {species: 'dog'}})
|
|
89
|
+
* .setTable('species', {dog: {price: 5}})
|
|
90
|
+
* .setValues({open: true});
|
|
59
91
|
* const persister = createIndexedDbPersister(store, 'petStore');
|
|
60
92
|
*
|
|
61
93
|
* await persister.save();
|
|
@@ -83,4 +115,4 @@ export function createIndexedDbPersister<Schemas extends OptionalSchemas>(
|
|
|
83
115
|
dbName: string,
|
|
84
116
|
autoLoadIntervalSeconds?: number,
|
|
85
117
|
onIgnoredError?: (error: any) => void,
|
|
86
|
-
):
|
|
118
|
+
): IndexedDbPersister<Schemas>;
|
|
@@ -23,6 +23,91 @@ import {OptionalSchemas, Store} from '../store';
|
|
|
23
23
|
import PartySocket from 'partysocket';
|
|
24
24
|
import {Persister} from '../persisters';
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* The PartyKitPersister interface is a minor extension to the Persister
|
|
28
|
+
* interface.
|
|
29
|
+
*
|
|
30
|
+
* It simply provides an extra getConnection method for accessing the
|
|
31
|
+
* PartySocket the Store is being persisted to.
|
|
32
|
+
* @since v4.3.14
|
|
33
|
+
*/
|
|
34
|
+
export interface PartyKitPersister<Schemas extends OptionalSchemas>
|
|
35
|
+
extends Persister<Schemas> {
|
|
36
|
+
/**
|
|
37
|
+
* The getConnection method returns the PartySocket the Store is being
|
|
38
|
+
* persisted to.
|
|
39
|
+
* @returns The PartySocket.
|
|
40
|
+
* @example
|
|
41
|
+
* This example creates a Persister object against a newly-created Store and
|
|
42
|
+
* then gets the PartySocket back out again.
|
|
43
|
+
*
|
|
44
|
+
* ```js yolo
|
|
45
|
+
* const partySocket = new PartySocket({
|
|
46
|
+
* host: PARTYKIT_HOST,
|
|
47
|
+
* room: 'my_room',
|
|
48
|
+
* });
|
|
49
|
+
* const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
|
|
50
|
+
* const persister = createPartyKitPersister(store, partySocket);
|
|
51
|
+
*
|
|
52
|
+
* console.log(persister.getConnection() == partySocket);
|
|
53
|
+
* // -> true
|
|
54
|
+
*
|
|
55
|
+
* persister.destroy();
|
|
56
|
+
* ```
|
|
57
|
+
* @category Getter
|
|
58
|
+
* @since v4.3.14
|
|
59
|
+
*/
|
|
60
|
+
getConnection: () => PartySocket;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The PartyKitPersisterConfig type describes the configuration of a PartyKit
|
|
65
|
+
* Persister on the client side.
|
|
66
|
+
*
|
|
67
|
+
* The defaults (if used on both the server and client) will work fine, but if
|
|
68
|
+
* you are building more complex PartyKit apps and you need to configure path
|
|
69
|
+
* names, for example, then this is the thing to use.
|
|
70
|
+
* @example
|
|
71
|
+
* When applied to a PartyKit Persister, this PartyKitPersisterConfig will load
|
|
72
|
+
* and save a JSON serialization from and to an end point in your room called
|
|
73
|
+
* `/my_tinybase`, and use HTTP (rather than the default HTTPS) as the protocol.
|
|
74
|
+
*
|
|
75
|
+
* Note that this would require you to also add the matching storePath setting
|
|
76
|
+
* to the TinyBasePartyKitServerConfig on the server side.
|
|
77
|
+
*
|
|
78
|
+
* ```js
|
|
79
|
+
* const partyKitPersisterConfig = {
|
|
80
|
+
* storeProtocol: 'http',
|
|
81
|
+
* storePath: '/my_tinybase',
|
|
82
|
+
* };
|
|
83
|
+
* ```
|
|
84
|
+
* @category Configuration
|
|
85
|
+
* @since v4.3.9
|
|
86
|
+
*/
|
|
87
|
+
export type PartyKitPersisterConfig = {
|
|
88
|
+
/**
|
|
89
|
+
* The HTTP protocol to use (in addition to the websocket channel). This
|
|
90
|
+
* defaults to 'https' but you may wish to use 'http' for local PartyKit
|
|
91
|
+
* development.
|
|
92
|
+
*/
|
|
93
|
+
storeProtocol?: 'http' | 'https';
|
|
94
|
+
/**
|
|
95
|
+
* The path used to set and get the whole Store over HTTP(S) on the server.
|
|
96
|
+
* This must match the storePath property of the TinyBasePartyKitServerConfig
|
|
97
|
+
* object used on the server. Both default to '/store'.
|
|
98
|
+
*/
|
|
99
|
+
storePath?: string;
|
|
100
|
+
/**
|
|
101
|
+
* The prefix at the beginning of the web socket messages sent between the
|
|
102
|
+
* client and the server when synchronizing the Store. Use this to make sure
|
|
103
|
+
* they do not collide with any other message syntax that your room is using.
|
|
104
|
+
* This must match the messagePrefix property of the
|
|
105
|
+
* TinyBasePartyKitServerConfig object used on the server. Both default to an
|
|
106
|
+
* empty string.
|
|
107
|
+
*/
|
|
108
|
+
messagePrefix?: string;
|
|
109
|
+
};
|
|
110
|
+
|
|
26
111
|
/**
|
|
27
112
|
* The createPartyKitPersister function creates a Persister object that can
|
|
28
113
|
* persist the Store to durable PartyKit storage, enabling synchronization of
|
|
@@ -34,9 +119,9 @@ import {Persister} from '../persisters';
|
|
|
34
119
|
* createPartyKitPersister(
|
|
35
120
|
* store: Store,
|
|
36
121
|
* connection: PartySocket,
|
|
37
|
-
*
|
|
122
|
+
* configOrStoreProtocol?: PartyKitPersisterConfig | 'http' | 'https',
|
|
38
123
|
* onIgnoredError?: (error: any) => void,
|
|
39
|
-
* ):
|
|
124
|
+
* ): PartyKitPersister;
|
|
40
125
|
* ```
|
|
41
126
|
*
|
|
42
127
|
* As well as providing a reference to the Store to persist, you must provide a
|
|
@@ -63,24 +148,26 @@ import {Persister} from '../persisters';
|
|
|
63
148
|
* @param store The Store to persist.
|
|
64
149
|
* @param connection The PartySocket to use for participating in the PartyKit
|
|
65
150
|
* room.
|
|
66
|
-
* @param
|
|
67
|
-
*
|
|
68
|
-
*
|
|
151
|
+
* @param configOrStoreProtocol The PartyKitPersisterConfig configuration for
|
|
152
|
+
* the Persister, (or a string to specify a HTTP protocol to use, defaulting to
|
|
153
|
+
* 'https').
|
|
69
154
|
* @param onIgnoredError An optional handler for the errors that the Persister
|
|
70
155
|
* would otherwise ignore when trying to save or load data. This is suitable for
|
|
71
156
|
* debugging persistence issues in a development environment.
|
|
72
|
-
* @returns A reference to the new
|
|
157
|
+
* @returns A reference to the new PartyKitPersister object.
|
|
73
158
|
* @example
|
|
74
|
-
* This example creates a
|
|
159
|
+
* This example creates a PartyKitPersister object and persists the Store to the
|
|
75
160
|
* browser's IndexedDB storage.
|
|
76
161
|
*
|
|
77
162
|
* ```js yolo
|
|
78
|
-
* const store =
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
163
|
+
* const store = createStore()
|
|
164
|
+
* .setTable('pets', {fido: {species: 'dog'}})
|
|
165
|
+
* .setTable('species', {dog: {price: 5}})
|
|
166
|
+
* .setValues({open: true});
|
|
167
|
+
* const partySocket = new PartySocket({
|
|
168
|
+
* host: PARTYKIT_HOST,
|
|
169
|
+
* room: 'my_room',
|
|
170
|
+
* });
|
|
84
171
|
* const persister = createPartyKitPersister(store, partySocket);
|
|
85
172
|
* await persister.startAutoLoad();
|
|
86
173
|
* await persister.startAutoSave();
|
|
@@ -94,6 +181,6 @@ import {Persister} from '../persisters';
|
|
|
94
181
|
export function createPartyKitPersister<Schemas extends OptionalSchemas>(
|
|
95
182
|
store: Store<Schemas>,
|
|
96
183
|
connection: PartySocket,
|
|
97
|
-
|
|
184
|
+
configOrStoreProtocol?: PartyKitPersisterConfig | 'http' | 'https',
|
|
98
185
|
onIgnoredError?: (error: any) => void,
|
|
99
|
-
):
|
|
186
|
+
): PartyKitPersister<Schemas>;
|