open-story-teller/story-player-web/classes/event-bus.js
anthony@rabine.fr 0ad614699c
Some checks failed
build-story-editor / build_linux (push) Has been cancelled
build-story-editor / build_win32 (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
dedicated directory for story web version
2025-01-10 22:04:39 +01:00

28 lines
634 B
JavaScript

class EventBus {
constructor() {
this.events = {};
this.id = Math.floor(Math.random() * 10000);
}
subscribe(event, listener) {
if (!this.events[event]) {
this.events[event] = [];
}
this.events[event].push(listener);
}
unsubscribe(event, listener) {
if (this.events[event]) {
this.events[event] = this.events[event].filter(l => l !== listener);
}
}
publish(event, data) {
if (this.events[event]) {
this.events[event].forEach(listener => listener(data));
}
}
}
export default new EventBus();