> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modelence.com/llms.txt
> Use this file to discover all available pages before exploring further.

# LiveData

[API Reference](/api-reference/modelence/server/classes/../../../index) / [modelence](/api-reference/modelence/server/classes/../../index) / [server](/api-reference/modelence/server/classes/../index) / LiveData

Defined in: [packages/modelence/src/live-query/context.ts:65](https://github.com/modelence/modelence/blob/f614ecc6811cdda9670d612872c8ff49a49c5e28/packages/modelence/src/live-query/context.ts#L65)

LiveData object returned by live query handlers.

## Example

```typescript theme={null}
import { LiveData } from 'modelence/server';

...

 getTodos({ userId }, context) {
   return new LiveData({
     fetch: async () => await dbTodos.fetch({ userId }),
     watch: ({ publish }) => {
       // Subscribe to changes and call publish when data changes
       listener.onChange(publish);

       return () => {
         // Cleanup function to unsubscribe from changes
       };
     }
   });
 }
```

## Type Parameters

| Type Parameter | Default type |
| -------------- | ------------ |
| `T`            | `unknown`    |

## Constructors

### Constructor

> **new LiveData**\<`T`>(`config`): `LiveData`\<`T`>

Defined in: [packages/modelence/src/live-query/context.ts:69](https://github.com/modelence/modelence/blob/f614ecc6811cdda9670d612872c8ff49a49c5e28/packages/modelence/src/live-query/context.ts#L69)

#### Parameters

| Parameter | Type                                                                                           |
| --------- | ---------------------------------------------------------------------------------------------- |
| `config`  | [`LiveDataConfig`](/api-reference/modelence/server/classes/../interfaces/LiveDataConfig)\<`T`> |

#### Returns

`LiveData`\<`T`>

## Properties

| Property                 | Modifier   | Type                                                                                       | Defined in                                                                                                                                                                               |
| ------------------------ | ---------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="fetch" /> `fetch` | `readonly` | () => `T` \| `Promise`\<`T`>                                                               | [packages/modelence/src/live-query/context.ts:66](https://github.com/modelence/modelence/blob/f614ecc6811cdda9670d612872c8ff49a49c5e28/packages/modelence/src/live-query/context.ts#L66) |
| <a id="watch" /> `watch` | `readonly` | [`LiveQueryWatch`](/api-reference/modelence/server/classes/../type-aliases/LiveQueryWatch) | [packages/modelence/src/live-query/context.ts:67](https://github.com/modelence/modelence/blob/f614ecc6811cdda9670d612872c8ff49a49c5e28/packages/modelence/src/live-query/context.ts#L67) |
