monex
Version:
Execute one or multiple scripts, interactively or in daemon mode, and restart them whenever they crash or a watched file changes.
30 lines (29 loc) • 817 B
JavaScript
/* IMPORT */
/* MAIN */
class Events {
constructor() {
/* VARIABLES */
this.listeners = {};
/* API */
this.emit = (event) => {
const listeners = this.get(event);
for (let i = 0, l = listeners.length; i < l; i++) {
listeners[i]();
}
};
this.get = (event) => {
return this.listeners[event] || (this.listeners[event] = []);
};
this.on = (event, listener) => {
const listeners = this.get(event);
if (listeners.includes(listener))
return () => { };
listeners.push(listener);
return () => {
listeners.splice(listeners.indexOf(listener), 1);
};
};
}
}
/* EXPORT */
export default Events;