let events = {}; export default { on (name, self, cb) { let cbArr = events[name]; if (Array.isArray(cbArr)) { cbArr.push({self, cb}) } else { events[name] = [{self, cb}] } }, remove (name, self) { let cbArr = events[name]; if (Array.isArray(cbArr)) { events[name] = cbArr.filter(({target, cb}) => { return target !== self }) } }, emit (name, data) { let cbArr = events[name]; if (Array.isArray(cbArr)) { cbArr.map(({target, cb}) => { cb.call(target, data) }) } }, events: { BUY_GAME_SUCCESS: 'buy-game-success', LOGIN_FINISHED : 'login-finished', UPDATE_RECENT_GAMES: 'update-recent-games', UPDATE_GAME_STATUS: 'update-game-status', NEED_UPDATE_SCORE: 'need-update-score' } }