Rettime is a small TypeScript library that combines browser-style `EventTarget` behavior with Node-style `EventEmitter`, adding event cancellation and type safety. It’s useful for building event-based systems where you want strongly typed event names and payloads, plus convenience helpers like `.emitAsPromise()` and `.emitAsGenerator()`.
Project status
- Actively maintained, recent GitHub activity shows multiple small
updateson 2026-05-03, with the latest push at 2026-05-03 18:45 UTC and subsequent patch releases following shortly after. - Apparent update cadence is fast for the recent window, v0.11.9 to v0.11.11 land within about 5 hours on the same day, suggesting an active development/review cycle rather than sporadic changes.
AI summary generated Today
Recent updates
v0.11.11
1 month agov0.11.11 is a small patch release focused on correcting duplicate handling in LensList and listener removal behavior. The documented change mentions keeping LensList internal stores synchronized when deleting duplicates, and the code diff shows additional listener iteration behavior changes not called out in the release notes.
v0.11.10
1 month agov0.11.10 improves the Emitter.hooks and listener registration behavior around AbortSignal, preventing indefinite registrations when the signal is already aborted. It also hardens hook invocation by iterating over snapshots so that removing other hooks during hook execution does not cause later hooks to be skipped.
v0.11.9
1 month agov0.11.9 changes the internal Emitter removal logic so that the `removeListener` hook is emitted when `removeAllListeners()` removes listeners. The implementation now centralizes removal behavior through `removeListener`, and updates related cleanup behavior for listeners registered with abort signals.
v0.11.8
1 month agov0.11.8 fixes an issue related to listener cleanup, and also addresses a behavioral bug around `.earlyOn` interactions with listener propagation. The implementation changes focus on correctly unsubscribing `AbortSignal` abort handlers to prevent leaked subscriptions and avoid unintended re-triggering during listener removal.
v0.11.7
2 months agov0.11.7 introduces hook enhancements around event emission. It adds a new hooks.beforeEmit hook and a persist option intended to keep hook handlers active across emitter.removeAllListeners().
Featuresv0.11.6
2 months agov0.11.6 adds support for passing listener options to hooks, specifically enabling hook removal when an AbortSignal is aborted. The implementation also introduces a once-like behavior for hook callbacks when options.once is provided.
Featuresv0.11.5
2 months agov0.11.5 introduces a new Emitter hook named removeListener. The implementation wires this hook into both explicit listener removal and automatic removal paths (for once listeners).
Featuresv0.11.4
2 months agov0.11.4 is a small release with release notes that only mention “various performance improvements”. The code diff shows changes inside the Emitter implementation (listener tracking and event.stopPropagation interception), plus a dev dependency update to @rolldown/binding-darwin-arm64.
v0.11.3
2 months agov0.11.3 contains a targeted bug fix focused on improving lookup performance inside `LensList`. The release notes specifically claim a reduction in lookup cost to O(1).
v0.11.2
2 months agov0.11.2 introduces a new Emitter hook, `newListener`, intended to let consumers observe when listeners are added. The release notes only mention the hook addition, but the implementation adds a new public `emitter.hooks` API and specifies exact callback timing and argument shapes in code.
Features