ChangeListener

Type Alias: ChangeListener()<T, TKey>

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

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

Function type for listening to collection changes

Type Parameters

T extends object = Record<string, unknown>

TKey extends string | number = string | number

Parameters

changes

ChangeMessage<T, TKey>[]

Array of change messages describing what happened

Returns

void

Examples

// 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)
// 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
    }
  }
}
Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.