all files / src/ emitter.js

22.22% Statements 4/18
0% Branches 0/6
0% Functions 0/6
22.22% Lines 4/18
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 29 30 31 32 33 34 35                                                             
"use strict";
 
var eventEmitter = new (require('events')).EventEmitter();
 
 
eventEmitter.all = function(events, callback) {
	var eventList = events.slice(0);
 
	events.forEach(function onEvent(event) {
		eventEmitter.on(event, function() {
			var index = eventList.indexOf(event);
			if (index === -1) {
				return;
			}
			eventList.splice(index, 1);
			if (eventList.length === 0) {
				callback();
			}
		});
	});
};
 
eventEmitter.any = function(events, callback) {
	events.forEach(function onEvent(event) {
		eventEmitter.on(event, function() {
			if (events !== null) {
				callback();
			}
 
			events = null;
		});
	});
};
 
module.exports = eventEmitter;