EventAggregator
Usage
import
import { EventAggregator } from "oj-eventaggregator";
create an instance
const ea = new EventAggregator<{
"edit": boolean,
"event": any,
"another": any,
}>()
subscribe to an event
subscribers with "*" listen to all events
ea.on("edit", editing => element.classList.toggle("is-editing", editing))
ea.once("event", (data, event) => {})
ea.onMultiple(["event", "another"], (data, event) => {})
ea.onceMultiple(["event", "another"], (data, event) => {})
emit an event
editBtn.addEventListener("click", e => ea.emit("edit", true))
ea.emitMultiple(["event", "another"], data)
unsubscribe a subscription
const sub = ea.on("event", (data, event) => {})
sub.off()
ea.clear("event")
ea.clearMultiple(["event", "another"])
pause / resume a subscription
const sub = ea.on("event", (data, event) => {})
sub.pause()
sub.resume()
ea.pause()
ea.resume()