-const EventEmitter = require("events");
+import { Evt, to } from "evt";
-const eeBus = new EventEmitter();
+ | ["disconnect", { cause: "remote" | "local" } ]
-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();
-const count = eeBus.listenerCount("disconnect");
+const count = evtBus.getHandlers()
+ .filter(handler => handler.op === to("disconnect"))
-eeBus.removeAllListeners("disconnect");
+ .filter(handler => handler.op === to("disconnect"))
+ .forEach(({ detach })=> detach());
const callback = ()=> { /* ... */ };
-eeBus.removeListener("connect", callback);
+ .filter(handler => handler.callback === callback)
+ .forEach(({detach})=> detach());