createEffect

Function: createEffect()

ts
function createEffect<TRow, TKey>(config): Effect;

Defined in: packages/db/src/query/effect.ts:184

Creates a reactive effect that fires handlers when rows enter, exit, or update within a query result. Effects process deltas only — they do not maintain or require the full materialised query result.

Type Parameters

TRow

TRow extends object = Record\<`string`, `unknown`\>

TKey

TKey extends string | number = string | number

Parameters

config

EffectConfig\<`TRow`, `TKey`\>

Returns

Effect

Example

ts
const effect = createEffect({
  query: (q) => q.from({ msg: messagesCollection })
    .where(({ msg }) => eq(msg.role, 'user')),
  onEnter: async (event) => {
    await generateResponse(event.value)
  },
})

// Later: stop the effect
await effect.dispose()