NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2862 most downloaded on npm
A type-safe marriage of `EventTarget` and `EventEmitter`.
Last release 9 days ago
25 Sep 2026
Release timing varies
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
35 releases · first in 2024
One column per month.
do not pass undefined to MessageEvent
keep LensList stores in sync when deleting duplicates ( #39 ) ( 3cc280a ) @kettanaito
LensList stores in sync when deleting duplicates (#39) (3cc280a) @kettanaitosupport removing the listener in the listener
emit "removeListener" hook on .removeAllListeners() ( #38 ) ( a08fd64 ) @kettanaito
.removeAllListeners() (#38) (a08fd64) @kettanaitolistener leak and .earlyOn listener re-yielding ( #37 ) ( 508a687 ) @kettanaito
.earlyOn listener re-yielding (#37) (508a687) @kettanaitoadd beforeEmit hook, persist hook option ( #36 ) ( 4844dfa ) @kettanaito
hooks: support options (e.g. signal ) ( #35 ) ( 6e8f475 ) @kettanaito
add removeListener hook ( #34 ) ( 781481a ) @kettanaito
various performance improvements ( #33 ) ( 2b65eb5 ) @kettanaito
reduce lookup cost in LensList to O(1) ( #31 ) ( f526061 ) @kettanaito
add a newListener hook ( #30 ) ( ac291c4 ) @kettanaito
use #listenerOptions weak map (#29) (4ab4fd85da7ff682d8caeb980404f660151167dd) @kettanaito
#listenerOptions weak map (#29) (4ab4fd85da7ff682d8caeb980404f660151167dd) @kettanaitoEmitter.EventType -> Emitter.Event
Emitter.EventType -> Emitter.EventEmitter.EventDataType -> Emitter.EventDataEmitter.ListenerType -> Emitter.ListenerEmitter and EventMap namespace helpers (#28) (e28c860e1ad05814350322df10c1dc34380dfe1b) @kettanaitouse MergedEventMap in InferEventMap to fix signature overload error (#27) (49483975e1a6bd221aa353a743ce3a55de9f5cf6) @kettanaito
MergedEventMap in InferEventMap to fix signature overload error (#27) (49483975e1a6bd221aa353a743ce3a55de9f5cf6) @kettanaitouse * for typeless listeners (#25) (606c1b5f03dff0916ecb77d1c61463735585ce2d) @kettanaito
* for typeless listeners (#25) (606c1b5f03dff0916ecb77d1c61463735585ce2d) @kettanaitoaccount for typeless listeners in .listeners() and .listenerCount() (#24) (b6c313ff83a78b56ffaa2959fd477df75a27fb05) @kettanaito
.listeners() and .listenerCount() (#24) (b6c313ff83a78b56ffaa2959fd477df75a27fb05) @kettanaitoinfer event.type in typeless listeners (#22) (1cdfae87f83deecc2f5d5ad770be1405b55b8f59) @kettanaito
event.type in typeless listeners (#22) (1cdfae87f83deecc2f5d5ad770be1405b55b8f59) @kettanaitosupport typeless listeners (#21) (b3d0e5d38153d62b02f2b7242a707f4cfe354bb1) @kettanaito
allow chaining of listener methods (#16) (9d2017616f45ef7fd1d345f0052904506e50194c) @kettanaito
use listenerCount to prevent event emission (#14) (52930d145473b72a86d0facb92771c82612f67e2) @kettanaito
listenerCount to prevent event emission (#14) (52930d145473b72a86d0facb92771c82612f67e2) @kettanaitoreturn empty array for event without listeners (#12) (09bc692398681feadf264f35b506512e3be7d584) @kettanaito
remove EventMap type argument fallback (#11) (e9ba7c8638bdeb3dc1fa2f19c2ed199f42d9aff1) @kettanaito
EventMap type argument fallback (#11) (e9ba7c8638bdeb3dc1fa2f19c2ed199f42d9aff1) @kettanaitosupport custom events (#10) (953b4c7d8f42646d8a12df5f1912dbec497f2044) @kettanaito
removeListener: clear listener options consistently
support .stopPropagation() and .stopImmediatePropagation() (#5) (e7c5bad5b1f416e0f51c119935fd608f9a826b6d) @kettanaito
.stopPropagation() and .stopImmediatePropagation() (#5) (e7c5bad5b1f416e0f51c119935fd608f9a826b6d) @kettanaito.emitAsPromise() and .emitAsGenerator() (8382e0750f68e51ea1d39a70927088d83467e1cd)supprt options for .earlyOnce()
options for .earlyOnce() (6ea931214f7b0931fe82b961bb6130af5de7c69b)## v0.5.1 (2025-04-25) ### Bug Fixes - drop Infer from type helpers
Infer from type helpers (e12ec74ba5806c9c1e80ecbce21cdcebdb1002a8)export type helpers under Emitter namespace (#4) (aea27fe4f7288bb6b92fa810fc5fd2967da6f2ab) @kettanaito
Emitter namespace (#4) (aea27fe4f7288bb6b92fa810fc5fd2967da6f2ab) @kettanaitosolve possibly infinite type instantiation on Emitter
Emitter (e6a4fb6d809c136e9a1a4587128e67ba768a5255)add type utilities (#2) (44bbd4e4c203c727bc1a925e22c3dfe8c0c4eec2) @kettanaito
support canceling events with AbortController (#1) (174bf04d9339205337a0d9d58b4444c97b742549) @kettanaito
AbortController (#1) (174bf04d9339205337a0d9d58b4444c97b742549) @kettanaitoclear event cache on ".emitAsPromise" and ".emitAsGenerator"
add ".earlyOn" and ".earlyOnce" methods
## v0.1.1 (2024-08-05) ### Bug Fixes - add sourcemaps, publish source
remove "options" from "on" and "once"
Your coding agent can read these notes before it upgrades. Set up the MCP server →