🔩From EventEmitter to Evt
If you need to transition from EventEmitter to Evt without too much refactorying.
All events in a single bus
-const EventEmitter = require("events");
+import { Evt, to } from "evt";
-const eeBus = new EventEmitter();
+const evtBus = new Evt<
+ | ["connect", void]
+ | ["disconnect", { cause: "remote" | "local" } ]
+ | ["error", Error]
+>();
-eeBus.on("disconnect", ({ cause })=> /* ... */);
+evtBus.attach(to("disconnect", ({ cause })=> /* ... */);
-eeBus.emit("disconnect", { cause: "remote" });
+evtBus.post([ "disconnect", { cause: "remote" }):
-eeBus.once("error", error => /* ... */);
+evtBus.attachOnce(to("error"), error => /* ... */);
-eeBus.removeAllListeners();
+evtBus.detach();
-const count = eeBus.listenerCount("disconnect");
+const count = evtBus.getHandlers()
+ .filter(handler => handler.op === to("disconnect"))
+ .length;
-eeBus.removeAllListeners("disconnect");
+evtText.getHandlers()
+ .filter(handler => handler.op === to("disconnect"))
+ .forEach(({ detach })=> detach());
const callback = ()=> { /* ... */ };
-eeBus.removeListener("connect", callback);
+evtText.getHandlers()
+ .filter(handler => handler.callback === callback)
+ .forEach(({detach})=> detach());
Extending/composing Evt
Inheritence (not recommended)
Composition ( recommended approach )
Last updated
Was this helpful?