@zexson/eventmanager
Version:
Shared utilities for Nex framework
47 lines (46 loc) • 1.54 kB
TypeScript
/**
* NexEventManager - Global event management system for Nex framework
*
* A lightweight, static event emitter that provides asynchronous event handling
* with support for one-time listeners and event cleanup.
*
* @example
* ```typescript
* // Register event listeners
* NexEventManager.on('user:login', (user) => {
* console.log(`User ${user.name} logged in`);
* });
*
* // Register one-time listener
* NexEventManager.once('app:ready', () => {
* console.log('Application is ready!');
* });
*
* // Emit events
* NexEventManager.emit('user:login', { name: 'John', id: 123 });
* NexEventManager.emit('app:ready');
*
* // Clear specific event listeners
* NexEventManager.clear('user:login');
*
* // Clear all event listeners
* NexEventManager.clear();
* ```
*
* @features
* - **Asynchronous Execution**: All event handlers run asynchronously using setTimeout
* - **One-time Listeners**: Support for `once()` method that auto-removes after execution
* - **Multiple Listeners**: Multiple functions can listen to the same event
* - **Event Cleanup**: Selective or complete event listener removal
* - **Type Safety**: Full TypeScript support with proper typing
*
* @author SignorMassimo
* @since 1.0.0
*/
export declare class NexEventManager {
private static events;
static on(event: string, func: (...args: any[]) => any): void;
static once(event: string, func: (...args: any[]) => any): void;
static emit(event: string, ...args: any[]): void;
static clear(event?: string): void;
}