export default class Notifications { constructor() { this._events = {}; } on(event, callback) { const addevent = (e, c) => { !this._events[e] && (this._events[e] = []); this._events[e].push(c); }; if ( typeof(event) == 'object' ) for (const i in event) addevent(i, event[i]) else addevent(event, callback); } off(event, callback) { if ( this._events[event] && this._events[event].includes(callback) ) { this._events[event].splice(this._events[event].indexOf(callback), 1); } } trigger(event/*, args*/) { if ( this._events[event] ) { this._events[event].forEach(callback => { callback.apply(this, Array.prototype.slice.call(arguments, 1)); }); } } }