Initial commit

This commit is contained in:
2015-07-06 00:39:38 +02:00
commit 3cd2541f7f
18 changed files with 1111 additions and 0 deletions

39
lib/synceventemitter.js Normal file
View File

@@ -0,0 +1,39 @@
'use strict';
function SyncEventEmitter () {
this.listeners = new Map();
}
SyncEventEmitter.prototype.on = function (ev, callback) {
if (this.listeners.has(ev)) {
this.listeners.remove(ev);
}
this.listeners.set(ev, callback);
return this;
};
SyncEventEmitter.prototype.emit = function (ev) {
if (this.listeners.has(ev)) {
let params = [];
for (var i = 1 ; i < arguments.length ; ++i) {
params.push(arguments[i]);
}
return this.listeners.get(ev).apply(undefined, params);
}
};
SyncEventEmitter.prototype.removeListener = function (ev) {
if (this.listeners.has(ev)) {
this.listeners.remove(ev);
}
};
SyncEventEmitter.prototype.hasListener = function (ev) {
return this.listeners.has(ev);
};
module.exports = SyncEventEmitter;