Events

Collections emit lifecycle events you can subscribe to.

Event types

Subscribing

const onUserDeleted = (user: User) => {
  console.log("User deleted:", user)
}

db.collections.users.addEventListener("delete", onUserDeleted)
db.collections.users.delete(user.id)
// User deleted: {...}
db.collections.users.removeEventListener("delete", onUserDeleted)

Cross-tab relay

By default, events are relayed to other tabs/windows using the same database. To turn this off:

export const db = idb("users", {
  schema,
  version: 1,
  relayEvents: false,
})