barrageapi
Version:
A library for sending data to Barrage, an advanced streaming analytics service from MIOsoft
35 lines (31 loc) • 1.02 kB
JavaScript
var eventHandlers = {};
module.exports = exports = {
broadcast : function (eventName, eventData) {
var eventListeners = eventHandlers[eventName];
if (eventListeners) {
for (var i = 0; i < eventListeners.length; i++) {
eventListeners[i](eventData);
}
}
},
addEventListener : function (eventName, callback) {
if (Object.prototype.toString.call(callback) !== '[object Function]') { throw new TypeError("Callback was not of type function"); }
var eventListeners = eventHandlers[eventName];
if (!eventListeners) { eventListeners = []; }
if (eventListeners.indexOf(callback) === -1) {
eventListeners.push(callback);
}
eventHandlers[eventName] = eventListeners;
},
removeEventListener : function (eventName, callback) {
var eventListeners = eventHandlers[eventName];
if (eventListeners) {
for (var i = 0; i < eventListeners.length; i++) {
if (eventListeners[i] === callback) {
eventListeners.splice(i, 1);
break;
}
}
}
}
};