17 lines
338 B
JavaScript
17 lines
338 B
JavaScript
export class MessageBus {
|
|
constructor() {
|
|
this.bus = new EventTarget()
|
|
}
|
|
|
|
subscribe(eventName, fn) {
|
|
this.bus.addEventListener(eventName, fn)
|
|
}
|
|
|
|
unsubscribe(eventName, fn) {
|
|
this.bus.removeEventListener(eventName, fn)
|
|
}
|
|
|
|
dispatch(eventName, data) {
|
|
this.bus.dispatchEvent(new CustomEvent(eventName, { detail: data }))
|
|
}
|
|
}
|