ChangeListener

Type Alias: ChangeListener()<T, TKey>

ts
type ChangeListener<T, TKey> = (changes) => void;
type ChangeListener<T, TKey> = (changes) => void;

Defined in: packages/db/src/types.ts:919

Function type for listening to collection changes

Type Parameters

T

T extends object = Record<string, unknown>

TKey

TKey extends string | number = string | number

Parameters

changes

ChangeMessage<WithVirtualProps<T, TKey>, TKey>[]

Array of change messages describing what happened

Returns

void

Examples

ts
// Basic change listener
const listener: ChangeListener = (changes) => {
  changes.forEach(change => {
    console.log(`${change.type}: ${change.key}`, change.value)
  })
}

collection.subscribeChanges(listener)
// Basic change listener
const listener: ChangeListener = (changes) => {
  changes.forEach(change => {
    console.log(`${change.type}: ${change.key}`, change.value)
  })
}

collection.subscribeChanges(listener)
ts
// Handle different change types
const listener: ChangeListener<Todo> = (changes) => {
  for (const change of changes) {
    switch (change.type) {
      case 'insert':
        addToUI(change.value)
        break
      case 'update':
        updateInUI(change.key, change.value, change.previousValue)
        break
      case 'delete':
        removeFromUI(change.key)
        break
    }
  }
}
// Handle different change types
const listener: ChangeListener<Todo> = (changes) => {
  for (const change of changes) {
    switch (change.type) {
      case 'insert':
        addToUI(change.value)
        break
      case 'update':
        updateInUI(change.key, change.value, change.previousValue)
        break
      case 'delete':
        removeFromUI(change.key)
        break
    }
  }
}