// events/eventEmitter.js const EventEmitter = require('events') class SafeEventEmitter extends EventEmitter { emit(event, ...args) { try { return super.emit(event, ...args) } catch (error) { console.error(`Error emitting event '${event}':`, error) this.emit('error', error) return false } } on(event, listener) { const wrappedListener = async (...args) => { try { await listener(...args) } catch (error) { console.error(`Error in event handler '${event}':`, error) this.emit('error', error) } } return super.on(event, wrappedListener) } } const eventEmitter = new SafeEventEmitter() // Add default error handler eventEmitter.on('error', (error) => { console.error('Event Error:', { name: error.name, message: error.message, stack: error.stack, timestamp: new Date().toISOString(), }) }) module.exports = { eventEmitter }