HevEmitter
A Hierarchical event emitter for javascript.
Examples
Creating a new emitter
var HevEmitter = ;var H = HevEmitterEventEmitter;var h = ;
Listening for hierarchical events
h; h;
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;
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;
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;
This would listen to an event route of any length, with 'finn'
in the first position.
For example
h;
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;h;h;
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;
will invoke the previously mounted ['*', 'the', '*']
listener, outputting
Hello cosmos