@nextcloud/event-bus
    Preparing search index...

    @nextcloud/event-bus

    @nextcloud/event-bus

    REUSE status Build Status Code coverage npm Documentation

    A simple event bus to communicate between Nextcloud components.

    npm install @nextcloud/event-bus --save
    
    yarn add @nextcloud/event-bus
    
    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. To register new events, simply extend the NextcloudEvents interface:

    1. Create a file like event-bus.d.ts:
    declare module '@nextcloud/event-bus' {
    interface NextcloudEvents {
    '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)
    })

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

    app-id:object:verb

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

    npm run build
    npm run test