Event emitter plugin

The event emitter plugin is one of the base Merkur plugins which adds event methods to your widget. Other Merkur plugins can depend on it.

Installation

We must add import of eventEmitterPlugin and register it to $plugins property of the widget.

// ./src/widget.js
import { eventEmitterPlugin } from '@merkur/plugin-event-emitter';

export const widgetProperties = {
  name,
  version,
  $plugins: [eventEmitterPlugin],
  // ... other properties
};

After that we have on, off and emit methods available on the widget.

Methods

on

The on method adds a listener function to the end of the listeners array for the event named eventName.

widget.on('save', (widget, ...rest) => {
  console.log(...rest);
});

off

The off method removes the specified listener from the listener array for the event named eventName.

widget.off('save', (widget, ...rest) => {
  console.log(...rest);
});

emit

The emit method synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

widget.on('save', (widget, data) => {
  console.log(data);
});

widget.emit('save', { key: 1 } );
// log to conosle { key: 1 }