.live()
Initiates a live query.
async db.live<T>(table: string, callback: (action: string, result: T) => void, diff?: boolean)
Arguments | Description | ||
---|---|---|---|
table required | The table name to listen for changes for | ||
callback optional | A callback function that processes live notifications. Consult the Live Actions for a list of all possible values being returned. | ||
diff optional | If set to true, live notifications will include an array of JSON Patch objects, rather than the entire record for each notification. |
// The uuid of the live query will be returned const queryUuid = await db.live( "person", // The callback function takes two arguments: the 'action' and 'result' properties ( action, result ) => { // action can be: 'CREATE', 'UPDATE', 'DELETE' or 'CLOSE' if (action === 'CLOSE') return; // result contains either the entire record, or a set of JSON patches when diff mode is enabled processSomeLiveQueryUpdate(result); } )
For CREATE
, UPDATE
and DELETE
, the type Result
is the generic argument passed to .live()
or .subscribeLive()
.
It extends either Record<string, unknown>
or Patch
.
It’s generally recommended to handle the CLOSE
action first, as that clears out the type for the result parameter.
Action | Result | Description | |
---|---|---|---|
|
| Emitted when the live query is closed due to it either being killed or the connection being disconnected. | |
|
| Emitted when a record within your subscription gets created | |
|
| Emitted when a record within your subscription gets updated | |
|
| Emitted when a record within your subscription gets deleted |