1.4.3 • Published 9 years ago

hevemitter v1.4.3

Weekly downloads
9
License
MIT
Repository
github
Last release
9 years ago

HevEmitter Build Status(http://jenkins.plediii.net:8080/buildStatus/icon?job=hevemitter master)

A Hierarchical event emitter for javascript.

Examples

Creating a new emitter

var HevEmitter = require('hevemitter');
var H = HevEmitter.EventEmitter;
var h = new H();

Listening for hierarchical events

h.on(['finn', 'the', 'human'], function () {
    console.log('jake the dog');
});

h.on(['finn', 'the', 'peasant'], function (msg) {
    console.log(msg, ' the cat');
});

The event listener may only receive one data argument. Any second argument is assumed to be a callback function used for short circuiting the event hierarchy.

Emitting a hierarchical event

h.emit(['finn', 'the', '*'], 'cake');

Here the * means to trigger all events at that level. With the listeners from the previous example, we expect the output:

jake the dog
cake the cat

Emitting to all listeners in a hierarchy

This would trigger the same output:

h.emit(['finn', '**'], 'cake');

Here, ** refers to all listeners to events at that level, the parent route (['finn']), and all descendants.

Listening to all events in a hierarchy

h.on(['finn', '**'], function () {
    console.log('princess bubblegum');
});

This would listen to an event route of any length, with 'finn' in the first position.

For example

h.emit(['finn', 'the', 'human'], 'cake');

Outputs:

princess bubblegum
jake the dog

The specific route ['finn', 'the', 'peasant'] did not match this time, however the general route ['finn', '**'] did. princess bubblegum is output before jake the dog because it is registered lower on the hierarchy.

Removing events in a hierarchy

h.on(['*', 'the', '*'], function (msg) {
  console.log('Hello ', msg);
});
h.removeAllListeners(['finn', '**']);
h.emit(['finn', 'the', '*'], 'EventEmitter');

Here, we've removed all events starting with 'finn', leaving only the 'hello' listener. So the resulting output is:

Hello EventEmitter

Note that removing ** events removes **, * and 'name' listeners.

Removing * removes only * listeners and 'name' listeners.

Removing 'name' listeners removes only 'name' listeners.

Using delimited strings

Event routes can be specified by delimited strings in addition to arrays.
For example

h.emit('neil/the/tyson', 'cosmos');

will invoke the previously mounted ['*', 'the', '*'] listener, outputting

Hello cosmos
1.4.3

9 years ago

1.4.2

9 years ago

1.4.1

9 years ago

1.4.0

9 years ago

1.3.0

9 years ago

1.2.0

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

0.9.3

9 years ago

0.9.1

10 years ago

0.9.0

10 years ago