@zexson/eventmanager
v1.0.0
Published
Shared utilities for Nex framework
Downloads
6
Maintainers
Readme
@zexson/eventmanager
A lightweight, zero-dependency event manager for your JavaScript or TypeScript applications. Designed for simplicity, NexEventManager allows you to register, emit, and manage events easily.
This package was originally designed by the Zexson Team for internal use in their own projects. However, you're welcome to use it freely in your own applications. Contributions and feedback are appreciated.
🚀 Features
- Register event listeners with
on - Register one-time listeners with
once - Emit events asynchronously
- Clear specific or all listeners
- TypeScript-ready out of the box
📦 Installation
npm install @zexson/eventmanager🧪 Usage
import { NexEventManager } from '@zexson/eventmanager'
// Register a normal event
NexEventManager.on('startup', () => {
console.log('Application started!')
})
// Register a one-time event
NexEventManager.once('init', () => {
console.log('Initialized once.')
})
// Emit the events
NexEventManager.emit('startup')
NexEventManager.emit('init')
NexEventManager.emit('init') // Won't trigger again
// Clear all listeners
NexEventManager.clear()
// Clear specific event listeners
NexEventManager.clear('startup')📚 API
NexEventManager.on(event: string, func: (...args: any[]) => any): void
Registers a persistent event listener.
NexEventManager.once(event: string, func: (...args: any[]) => any): void
Registers a one-time listener that runs once and then auto-removes.
NexEventManager.emit(event: string, ...args: any[]): void
Emits an event asynchronously and calls all matching listeners.
NexEventManager.clear(event?: string): void
Clears all listeners for a specific event or all if no event is specified.
🧠 Why use this?
- Perfect for small tools, CLI apps, or custom systems.
- Cleaner than
EventEmitterif you need minimal async eventing. - Fully async-friendly and works in both Node.js and browsers.
📫 Connect with Us
📄 License
MIT
Made with ❤️ for you by Zexson Team.
