UNPKG

dphelper

Version:

dphelper devtools for developers

134 lines (100 loc) 3.2 kB
# triggers Custom event trigger system for application-wide event handling. ## Functions | Function | Description | Example | |----------|-------------|---------| | `add` | Add event listener | `dphelper.triggers.add(event, callback)` | | `on` | Listen for event (alias for add) | `dphelper.triggers.on(event, callback)` | | `emit` | Trigger an event with data | `dphelper.triggers.emit(event, data)` | | `remove` | Remove all listeners for event | `dphelper.triggers.remove(event)` | | `off` | Remove specific callback | `dphelper.triggers.off(event, callback)` | | `clear` | Clear all triggers | `dphelper.triggers.clear()` | | `list` | List all registered events | `dphelper.triggers.list()` | ## Description Custom event system: - **Event Listeners** - Add/remove custom event listeners - **Event Emission** - Emit events with data payloads - **Namespacing** - Organize events by name - **Error Handling** - Safe callback execution ## Usage Examples ### Add Event Listeners ```javascript // Listen for custom events dphelper.triggers.add('user:login', (user) => { console.log('User logged in:', user); }); dphelper.triggers.on('data:loaded', (data) => { console.log('Data received:', data); }); ``` ### Emit Events ```javascript // Emit events with data dphelper.triggers.emit('user:login', { id: 1, name: 'John' }); dphelper.triggers.emit('notification', { type: 'success', message: 'Operation complete!' }); ``` ### Remove Listeners ```javascript // Remove all listeners for an event dphelper.triggers.remove('user:login'); // Remove specific callback const handler = (data) => console.log(data); dphelper.triggers.on('event', handler); // ... later dphelper.triggers.off('event', handler); ``` ### List Registered Events ```javascript // See all registered events const events = dphelper.triggers.list(); console.log(events); // ['user:login', 'data:loaded', ...] // Clear all triggers dphelper.triggers.clear(); ``` ### Event-Driven Architecture ```javascript // Pub/Sub event system class EventBus { constructor() { this.triggers = dphelper.triggers; } subscribe(event, callback) { this.triggers.on(event, callback); return () => this.triggers.off(event, callback); } publish(event, data) { this.triggers.emit(event, data); } } const bus = new EventBus(); // Subscribe const unsubscribe = bus.subscribe('order:created', (order) => { console.log('Order created:', order.id); }); // Publish bus.publish('order:created', { id: 123, total: 99.99 }); // Unsubscribe unsubscribe(); ``` ### Component Communication ```javascript // Component A - Sender function notifyUser(userId, message) { dphelper.triggers.emit('notification', { userId, message }); } // Component B - Receiver dphelper.triggers.on('notification', ({ userId, message }) => { showToast(`User ${userId}: ${message}`); }); ``` ## Details - **Author:** Dario Passariello - **Version:** 0.0.1 - **Creation Date:** 20250220 - **Last Modified:** 20250220 - **Environment:** client (browser) --- *Automatically generated document*