Comparing version 0.2.2 to 0.3.0
35
index.js
@@ -11,2 +11,6 @@ function propagate(events, source, dest) { | ||
if (Array.isArray(events)) { | ||
return explicitPropagate(events, source, dest); | ||
} | ||
var oldEmit = source.emit; | ||
@@ -30,2 +34,31 @@ | ||
module.exports = propagate; | ||
module.exports = propagate; | ||
function explicitPropagate(events, source, dest) { | ||
var listeners = events.map(function(event) { | ||
return function() { | ||
var args = Array.prototype.slice(arguments); | ||
args.unshift(event); | ||
dest.emit.apply(dest, args); | ||
} | ||
}); | ||
listeners.forEach(register); | ||
return { | ||
end: end | ||
}; | ||
function register(listener, i) { | ||
source.on(events[i], listener); | ||
} | ||
function unregister(listener, i) { | ||
source.removeListener(events[i], listener); | ||
} | ||
function end() { | ||
listeners.forEach(unregister); | ||
} | ||
} |
{ | ||
"name": "propagate", | ||
"description": "Propagate events", | ||
"version": "0.2.2", | ||
"version": "0.3.0", | ||
"author" : "Pedro Teixeira <pedro.teixeira@gmail.com>", | ||
@@ -6,0 +6,0 @@ "contributors" : [ |
4353
112