export default function createBus() { return { events: {}, on(event, callback) { if (!this.events[event]) this.events[event] = []; this.events[event].push(callback); }, off(event, callback) { if (!this.events[event]) return; if (!callback) this.events[event] = []; else { const index = this.events[event].indexOf(callback); if (index !== -1) this.events[event].splice(index, 1); } }, emit(event, ...args) { if (this.events[event]) this.events[event].forEach((callback) => callback(...args)); }, }; }