voyager-admin/voyager

View on GitHub
resources/assets/js/eventbus.ts

Summary

Maintainability
A
0 mins
Test Coverage
interface EventHandler {
    event: string;
    callback: Function
};

let handler: Array<EventHandler> = [];

export default {
    on(event: string, callback: Function) {
        handler.push({
            event: event,
            callback: callback,
        });
    },

    emit(event: string, payload: any) {
        handler.filter((h) => {
            return h.event == event;
        }).forEach((h) => {
            h.callback(payload);
        });
    },

    hasListener(event: string) {
        return handler.filter((h) => {
            return h.event == event;
        }).length > 0;
    },
};