Files
kavehhn de60d4f163 ADD: Events
ADD: Index One Belonging
ADD: Belonging Code
2025-06-04 16:07:45 +03:30

41 lines
1.0 KiB
JavaScript

// 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 }