@degjs/event-aggregator

2.0.1 • Public • Published

eventAggregator

Build Status

EventAggregator is a module that acts as a single source of events for objects that wish to publish and/or subscribe to events. This module was heavily inspired by Eric Elliot and his excellent book Programming JavaScript Applications. Go read it.

Install

Install eventAggregator from NPM with command:

$ npm install @degjs/event-aggregator

Usage

EventAggregator is a singleton, so it does not need to be instantiated.

import eventAggregator from "@degjs/event-aggregator";

function onSomeEvent(e) {
    console.log(e);
}

/* Subscribe to 'someEvent' event */
eventAggregator.subscribe('someEvent', onSomeEvent);

/* Unsubscribe from 'someEvent' event */
eventAggregator.unsubscribe('someEvent', onSomeEvent);

/* Publish 'yetAnotherEvent' event */
eventAggregator.publish({
    /* type property is required */
    type: 'yetAnotherEvent',
    data: {...}
});

Methods

.subscribe(eventType, listener)

Subscribe to an event.

eventType

Type: String The name of the event to subscribe to.

listener

Type: Function The listener function that will be called when the event is fired.

.unsubscribe(eventType, listener)

Unsubscribe from an event.

eventType

Type: String The name of the event to unsubscribe from.

listener

Type: Function The listener function that was subscribed to the event.

.publish(evt)

Publish an event.

evt

Type: Object or String The event to publish. If the parameter is a String, it should be the name of the event. If the parameter is an Object, it must have a type property with a value that is the name of the event. Any other properties on the object will be passed along to all subscribers of the event.

Browser Support

Breakpoints depends on the following browser APIs:

To support legacy browsers, you'll need to include polyfills for the above APIs.

Readme

Keywords

Package Sidebar

Install

npm i @degjs/event-aggregator

Weekly Downloads

1

Version

2.0.1

License

MIT

Unpacked Size

7 kB

Total Files

4

Last publish

Collaborators

  • heaper
  • briangraves
  • aladage
  • jlawhorn
  • designbykhalid
  • alejcerro
  • vequanc