Back to Explore

kettanaito/rettime

GitHub
4 updates · last 90 days1 watchersOpen source

Last release:

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, with the most recent upstream push on 2026-05-03 and multiple recent updates (v0.11.9 through v0.11.11) landing within days, suggesting responsive ongoing development rather than a dormant state.
  • Apparent cadence is medium and cluster-based, with several updates across mid-March (v0.11.2 to v0.11.7 on 2026-03-11 to 2026-03-12), then continuing in late April (v0.11.8 on 2026-04-19) and again in early May (v0.11.9 to v0.11.11 on 2026-05-03). As of 2026-06-11, the last recorded update is about five weeks old.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.11.11

    v0.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

    v0.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

    v0.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

    v0.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

    v0.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().

    Features
  • v0.11.6

    v0.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.

    Features
  • v0.11.5

    v0.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).

    Features
  • v0.11.4

    v0.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

    v0.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

    v0.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