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 }
|
||||
@@ -0,0 +1,35 @@
|
||||
// events/index.js
|
||||
const { eventEmitter } = require('./eventEmitter')
|
||||
const createBelonging = require('../components/belonging/events/createBelonging')
|
||||
const deleteBelonging = require('../components/belonging/events/deleteBelonging')
|
||||
const registerEventHandlers = () => {
|
||||
// Register all event handlers
|
||||
createBelonging(eventEmitter)
|
||||
deleteBelonging(eventEmitter)
|
||||
// Add additional error monitoring if needed
|
||||
eventEmitter.on('error', (error) => {
|
||||
// You can add additional error handling here
|
||||
// For example, sending to a monitoring service
|
||||
console.error('Event handler error:', error)
|
||||
})
|
||||
|
||||
// Log when events are registered (optional)
|
||||
console.log('Event handlers registered successfully')
|
||||
}
|
||||
|
||||
// Helper function to safely emit events (can be used in other files)
|
||||
const safeEmit = async (eventName, ...args) => {
|
||||
try {
|
||||
return eventEmitter.emit(eventName, ...args)
|
||||
} catch (error) {
|
||||
console.error(`Error safely emitting ${eventName}:`, error)
|
||||
eventEmitter.emit('error', error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
registerEventHandlers,
|
||||
eventEmitter,
|
||||
safeEmit,
|
||||
}
|
||||
Reference in New Issue
Block a user