Skip to content

Repository files navigation

@nextcloud/event-bus

REUSE statusBuild StatusCode coveragenpmDocumentation

A simple event bus to communicate between Nextcloud components.

Installation

npm install @nextcloud/event-bus --save
yarn add @nextcloud/event-bus

Usage

import{emit,subscribe,unsubscribe}from'@nextcloud/event-bus'consth=(e)=>console.info(e)subscribe('a',h)subscribe('b',h)emit('a',{data: 123,})unsubscribe('a',h)unsubscribe('b',h)

Typed events

It is also possible to type events, which allows type infering on the event-bus methods like emit, subscribe and unsubscribe. To register new events, simply extend the NextcloudEvents interface:

  1. Create a file like event-bus.d.ts:
declare module '@nextcloud/event-bus'{interfaceNextcloudEvents{'example-app:awesomeness:increased': {level: number}}}export{}
  1. Now if you use any of the event bus functions, the parameters will automatically be typed correctly:
import{subscribe}from'@nextcloud/event-bus'subscribe('example-app:awesomeness:increased',(event)=>{// "event" automatically infers type { level: number}console.log(event.level)})

Naming convention

To stay consistent, we encourage you to use the following syntax when declaring events

app-id:object:verb

Examples:

  • nextcloud:unified-search:closed
  • files:node:uploading
  • files:node:uploaded
  • files:node:deleted
  • contacts:contact:deleted
  • calendar:event:created
  • forms:answer:updated

Development

npm install
npm run build
npm run test

Requirements

About

A event bus to communicate between Nextcloud components https://npmjs.org/@nextcloud/event-bus

Topics

Resources

Contributing

Security policy

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages