Simple and modern async event emitter
Emittery is a JavaScript npm package that provides a simple and modern async event emitter for use in Node.js and browser environments (via bundlers). Built with TypeScript support and zero dependencies, it implements an async-first architecture where listeners are deferred to the next microtask to keep code non-blocking, which is important for production systems to maintain scalability and prevent UI lag. The package includes features like async iteration with `for await...of` support, lifecycle hooks for resource management, AbortSignal cancellation, Symbol.dispose support for automatic cleanup, and debug mode with customizable logging.