A simple event bus to communicate between Nextcloud components.
npm install @nextcloud/event-bus
  

A simple event bus to communicate between Nextcloud components.
``sh`
npm install @nextcloud/event-bus --save
`sh`
yarn add @nextcloud/event-bus
`js
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
const h = (e) => console.info(e)
subscribe('a', h)
subscribe('b', h)
emit('a', {
data: 123,
})
unsubscribe('a', h)
unsubscribe('b', h)
`
It is also possible to type events, which allows type infering on the event-bus methods like emit, subscribe and unsubscribe.NextcloudEvents
To register new events, simply extend the interface:
1. Create a file like event-bus.d.ts:
`ts
declare module '@nextcloud/event-bus' {
interface NextcloudEvents {
'example-app:awesomeness:increased': { level: number }
}
}
export {}
`
2. Now if you use any of the event bus functions, the parameters will automatically be typed correctly:
`ts
import { subscribe } from '@nextcloud/event-bus'
subscribe('example-app:awesomeness:increased', (event) => {
// "event" automatically infers type { level: number}
console.log(event.level)
})
`
To stay consistent, we encourage you to use the following syntax when declaring events
app-id:object:verb
- nextcloud:unified-search:closedfiles:node:uploading
- files:node:uploaded
- files:node:deleted
- contacts:contact:deleted
- calendar:event:created
- forms:answer:updated
-
`sh
npm install
npm run build
npm run test
``