module.exports = eventsToArray
var EE = require('events').EventEmitter
function eventsToArray (ee, ignore, map) {
ignore = ignore || []
map = map || function (x) { return x }
var array = []
ee.emit = (function (orig) {
return function etoaWrap (ev) {
if (ignore.indexOf(ev) === -1) {
var l = arguments.length
var args = new Array(l)
for (var i = 0; i < l; i++) {
var arg = arguments[i]
args[i] = (arg instanceof EE) ?
eventsToArray(arg, ignore) :
arg
}
array.push(map(args))
}
return orig.apply(this, arguments)
}
})(ee.emit)
return array
}
|