remitter


A TypeScript friendly event emitter with easy re-emitting events.
Install
npm add remitter
Usage
import { Remitter } from "remitter";
interface EventConfig {
event1: string;
event2: void;
}
const remitter = new Remitter<EventConfig>();
const disposer = remitter.on("event1", value => {
console.log("event1", value);
});
remitter.count("event1");
remitter.emit("event1", "hello");
remitter.emit("event2");
disposer();
remitter.emit("event1", "world");
remitter.clear("event2");
remitter.count();
remitter.destroy();
Tap
You may tap into other events which will be lazy-executed when listener count of an event name grows from 0 to 1 and be disposed when listener count drops from 1 to 0.
remitter.remit("event1", () => {
const handler = e => {
remitter.emit("event1", e.value + 1);
};
otherEvent.addListener(handler);
return () => {
otherEvent.removeListener(handler);
};
});
The callback function can also be a pure function.
const tapToOtherEvent = remitter => {
const handler = e => {
remitter.emit("event1", e.value + 1);
};
otherEvent.addListener(handler);
return () => {
otherEvent.removeListener(handler);
};
};
remitter.remit("event1", tapToOtherEvent);
Acknowledgment
Huge thanks to @recursivefunk for giving away the NPM package name remitter
.