let callbacks = {}; const register = (eventName, callback) => { if (!callbacks[eventName]) { callbacks[eventName] = new Set(); } callbacks[eventName].add(callback); }; const unRegister = (eventName, callback) => { if (!callbacks[eventName]) { callbacks[eventName] = new Set(); } callbacks[eventName].delete(callback); }; const unRegisterAll = () => { callbacks = {}; }; const fire = (eventName, payload) => { if (callbacks[eventName]) { callbacks[eventName].forEach(callback => { try { callback(payload); } catch (error) { console.log(error); } }); } }; export default { register, unRegister, unRegisterAll, fire };