Skip to content

Instantly share code, notes, and snippets.

@UpperCod
Created November 29, 2019 03:14
Show Gist options
  • Save UpperCod/baab08aefc9004f5ecb73b572323ee1d to your computer and use it in GitHub Desktop.
Save UpperCod/baab08aefc9004f5ecb73b572323ee1d to your computer and use it in GitHub Desktop.
function createEventEmmiter() {
let events = new Map();
function addEventListener(type, callback) {
if (!events.has(type)) {
events.set(type, new Map());
}
events.get(type).set(callback);
}
function removeEventListener(type, callback) {
let items;
if ((items = events.get(type))) {
items.delete(callback);
}
}
function dispatchEvent(type, detail) {
let items;
if ((items = events.get(type))) {
for (let [callback] of items) {
callback(detail);
}
}
}
return { addEventListener, removeEventListener, dispatchEvent };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment