mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 14:06:15 +00:00
17 lines
457 B
TypeScript
17 lines
457 B
TypeScript
type Callback = (data: unknown) => void;
|
|
|
|
const events: Record<string, Callback[]> = {};
|
|
|
|
export const EventBus = {
|
|
on(event: string, callback: Callback) {
|
|
if (!events[event]) events[event] = [];
|
|
events[event].push(callback);
|
|
},
|
|
off(event: string, callback: Callback) {
|
|
events[event] = events[event]?.filter((cb) => cb !== callback) || [];
|
|
},
|
|
emit(event: string, data?: unknown) {
|
|
events[event]?.forEach((cb) => cb(data));
|
|
},
|
|
};
|