Events
Collections emit lifecycle events you can subscribe to.
Event types
write— A record was created or updateddelete— A record was deletedwrite|delete— Any create, update, or deleteclear— All records were removed viadb.<collection>.clear
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,
})