in src/events/EventDispatcher.ts [7:43]
constructor() {
const listeners = new Map<string, Set<(event: Event) => void>>();
this.addEventListener = (type: string, listener: (event: Event) => void) => {
if (!listeners.has(type)) {
listeners.set(type, new Set());
}
listeners.get(type)!.add(listener);
};
this.removeEventListener = (type: string, listener: (event: Event) => void) => {
if (!listeners.has(type)) {
return;
}
listeners.get(type)!.delete(listener);
};
this.hasEventListener = (type: string, listener: (event: Event) => void) => {
if (!listeners.has(type)) {
return false;
}
return listeners.get(type)!.has(listener);
};
this.dispatchEvent = (event: Event) => {
if (!listeners.has(event.type)) {
return;
}
for (const listener of listeners.get(event.type)!) {
listener(event);
}
};
}