All files etoa.js

100% Statements 17/17
87.5% Branches 7/8
100% Functions 4/4
100% Lines 16/16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 291x   1x   2x 7x 2x   2x 2x 9x 7x 7x 7x 19x 19x       7x     9x       2x    
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
}