@uttori/event-dispatcher
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

view on npm npm module downloads Build Status

Coverage Status Tree-Shaking Support Dependency Count Minified + GZip Minified

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

EventDispatcher

An event bus system for registering, unregistering and triggering events.

Kind: global class
Properties

Name Type Description
events Record.<string, UttoriEvent> The collection of events to listen for.

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);

eventDispatcher.events : Record.<string, UttoriEvent>

The collection of events to listen for.

Kind: instance property of EventDispatcher

eventDispatcher.validate(label, data, [context]) ⇒ Promise.<boolean>

Fires off an event with passed in data and context for a given label.

Kind: instance method of EventDispatcher
Returns: Promise.<boolean> - 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 any 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);

eventDispatcher.filter(label, data, [context]) ⇒ Promise.<T>

Fires off an event with passed in data and context for a given label.

Kind: instance method of EventDispatcher
Returns: Promise.<T> - The original input data, either modified or untouched.

Param Type Description
label string The human readable identifier of the event.
data any 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 any 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);

eventDispatcher.fetch(label, data, [context]) ⇒ Promise.<Array.<T>>

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.<T>> - An array of the results.

Param Type Description
label string The human readable identifier of the event.
data any 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 UttoriEventCallback.<any, any> 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 UttoriEventCallback.<any, any> 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 UttoriEventCallback.<any, any> 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

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License

Readme

Keywords

Package Sidebar

Install

npm i @uttori/event-dispatcher

Weekly Downloads

4

Version

3.0.2

License

MIT

Unpacked Size

37.5 kB

Total Files

13

Last publish

Collaborators

  • matthewcallis