3.0.2 • Published 4 months ago

@uttori/event-dispatcher v3.0.2

Weekly downloads
17
License
MIT
Repository
github
Last release
4 months ago

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

NameTypeDescription
eventsRecord.<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.

ParamTypeDescription
labelstringThe human readable identifier of the event.
dataanyData to be used, updated, or modified by event callbacks.
contextobjectContext 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.

ParamTypeDescription
labelstringThe human readable identifier of the event.
dataanyData to be used, updated, or modified by event callbacks.
contextobjectContext 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

ParamTypeDescription
labelstringThe human readable identifier of the event.
dataanyData to be used, updated, or modified by event callbacks.
contextobjectContext 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.

ParamTypeDescription
labelstringThe human readable identifier of the event.
dataanyData to be used by event callbacks.
contextobjectContext 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

ParamTypeDescription
labelstringThe human readable identifier of the event.
callbackUttoriEventCallback.<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

ParamTypeDescription
labelstringThe human readable identifier of the event.
callbackUttoriEventCallback.<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

ParamTypeDescription
labelstringThe human readable identifier of the event.
callbackUttoriEventCallback.<any, any>Function to be removed.

Example

bus.off('loaded', callback);

EventDispatcher.check(label)

Verifies an event label.

Kind: static method of EventDispatcher

ParamTypeDescription
labelstringThe 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

3.0.2

4 months ago

3.0.1

4 months ago

3.0.0

4 months ago

2.0.2

1 year ago

2.0.1

2 years ago

2.0.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago