UNPKG

@daysnap/utils

Version:
39 lines (37 loc) 747 B
// src/eventBus.ts var events = {}; function off(eventName, callback) { if (events[eventName]) { events[eventName] = events[eventName].filter((item) => item !== callback); if (!events[eventName].length) { delete events[eventName]; } } } function on(eventName, callback) { ; (events[eventName] || (events[eventName] = [])).push(callback); return () => off(eventName, callback); } function emit(eventName, ...args) { const callbacks = events[eventName]; if (callbacks) { callbacks.forEach((callback) => callback(...args)); } } function clear(eventName) { if (eventName) { delete events[eventName]; } else { events = {}; } } var eventBus = { on, off, emit, clear }; export { eventBus };