ADD: Events
ADD: Index One Belonging ADD: Belonging Code
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// 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 }
|
||||
Reference in New Issue
Block a user