-- **Emitter** (`src/emitter.js`) factory returning a `Writable` that re-emits tokens as named EventEmitter events (subscribe with `.on(name, fn)`). Web counterpart (`src/web/emitter.js`) returns an `EventTarget` with a `.writable` `WritableStream` attached; each token dispatches as a `CustomEvent(name, {detail: value})` (subscribe with `.addEventListener(name, ev => ev.detail)`). EventTarget + CustomEvent are universal across Node 22+, Bun, Deno, and browsers. For hot paths, prefer the `for await` form over the emitter — same model, no per-token `CustomEvent` allocation, no listener-registry indirection.
0 commit comments