PubSub
class like this:
class PubSub {
constructor () {
this.el = document.createElement('div');
}
subscribe (eventName, handler) {
this.el.addEventListener(eventName, handler);
}
unsubscribe (eventName, handler) {
this.el.removeEventListener(eventName, handler);
}
publish (eventName, ...args) {
const event = new Event(eventName);
event.args = args;
this.el.dispatchEvent(event);
}
}