README
Uttori Event Dispatcher
An event bus system for registering, unregistering and triggering events.
Install
npm install --save @uttori/event-dispatcher
Example
const hooks = new EventDispatcher();
hooks.on('update', callback);
hooks.dispatch('update', { data }, this);
hooks.off('update', callback);
API Reference
Classes
- EventDispatcher
An event bus system for registering, unregistering and triggering events.
Functions
- debug() :
function
EventDispatcher
An event bus system for registering, unregistering and triggering events.
Kind: global class
Properties
Name | Type | Description |
---|---|---|
events | object |
The collection of events to listen for. |
- EventDispatcher
- new EventDispatcher()
- instance
- .validate(label, data, [context]) ⇒
Promise
- .filter(label, data, [context]) ⇒
Promise.<*>
- .dispatch(label, data, [context])
- .fetch(label, data, [context]) ⇒
Promise.<Array>
- .on(label, callback)
- .once(label, callback)
- .off(label, callback)
- .validate(label, data, [context]) ⇒
- static
new EventDispatcher()
Creates a new EventDispatcher instance.
Example (new EventDispatcher())
const bus = new EventDispatcher();
bus.on('update', callback);
bus.dispatch('update', { data }, { context });
bus.off('update', callback);
Promise
eventDispatcher.validate(label, data, [context]) ⇒ Fires off an event with passed in data and context for a given label.
Kind: instance method of EventDispatcher
Returns: Promise
- The conclusion of the spam checks, true being it is spam, false meaning it is clean.
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
data | * |
Data to be used, updated, or modified by event callbacks. |
[context] | object |
Context to help with updating or modification of the data. |
Example
is_spam = await bus.validate('check-for-spam', { data }, this);
Promise.<*>
eventDispatcher.filter(label, data, [context]) ⇒ Fires off an event with passed in data and context for a given label.
Kind: instance method of EventDispatcher
Returns: Promise.<*>
- The original input data, either modified or untouched.
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
data | * |
Data to be used, updated, or modified by event callbacks. |
[context] | object |
Context to help with updating or modification of the data. |
Example
output = await bus.filter('loaded', { data }, this);
eventDispatcher.dispatch(label, data, [context])
Fires off an event with passed in data and context for a given label.
Kind: instance method of EventDispatcher
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
data | * |
Data to be used, updated, or modified by event callbacks. |
[context] | object |
Context to help with updating or modification of the data. |
Example
bus.dispatch('loaded', { data }, this);
Promise.<Array>
eventDispatcher.fetch(label, data, [context]) ⇒ Fires off an event with passed in data and context for a given label and returns an array of the results.
Kind: instance method of EventDispatcher
Returns: Promise.<Array>
- An array of the results.
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
data | * |
Data to be used by event callbacks. |
[context] | object |
Context to help with updating or modification of the data. |
Example
popular = await bus.fetch('popular-documents', { limit: 10 }, this);
eventDispatcher.on(label, callback)
Add a function to an event that will be called when the label is dispatched. If no label is found, one is created.
Kind: instance method of EventDispatcher
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
callback | function |
Function to be called when the event is fired. |
Example
bus.on('loaded', callback);
eventDispatcher.once(label, callback)
Add a function to an event that will be called only once when the label is dispatched.
Uses the EventDispatcher.on
method with a function wrapped to call off on use.
Kind: instance method of EventDispatcher
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
callback | function |
Function to be called when the event is fired. |
Example
bus.once('one-time-process', callback);
eventDispatcher.off(label, callback)
Remove a function from an event.
Kind: instance method of EventDispatcher
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
callback | function |
Function to be removed. |
Example
bus.off('loaded', callback);
EventDispatcher.check(label)
Verifies an event label.
Kind: static method of EventDispatcher
Param | Type | Description |
---|---|---|
label | string |
The human readable identifier of the event. |
Example
EventDispatcher.check('event'); // No Error
EventDispatcher.check(1); // Throws Error
function
debug() : Kind: global function
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
DEBUG=Uttori* npm test