iron-beam
iron-beam is a interchangeable replacement for events.EventEmitter
with wildcards, annotations and interception of event lifecycles.
Documentation
Installation
npm install iron-beam
Usage
all the methods available from node.js events.EventEmitter
are documented here.
wildcard listeners
var ib = new IronBeam.EventEmitter();
ib.on('a.*', (anno) => {
});
ib.emit('a.b');
annotations
var ib = new IronBeam.EventEmitter();
ib.annotate({
some: "data"
}).on('annotated-event', (req, anno) => {
});
ib.emit('annotated-event', {
some: "annotation"
});
var ib = new IronBeam.EventEmitter();
ib.annotate({
data: 0
}).once('get-annotated', () => {});
ib.annotate({
data: 1
}).once('get-annotated', () => {});
ib.annotatedListeners('get-annotated');
ib.annotatedListeners('get-annotated', {
data: 0
});
ib.allAnnotatedListeners();
ib.allAnnotatedListeners({
data: 0
});
ib.removeAnnotatedListeners('get-annotated');
ib.removeAllAnnotatedListeners({
data: 0
});
interception
var ib = new IronBeam.EventEmitter();
ib.on('intercept-me', (arg) => {
});
ib.intercept('intercept-me', {
preEmit: (stop, next, anno, req) => {
},
preListener: (stop, next, anno, req) => {
},
postListener: (stop, next, anno, req) => {
},
postEmit: (stop, next, anno, req) => {
}
});
ib.emit('intercept-me', 123);