ts-discord-wrapper
Version:
A wrapper for the Discord API written in TypeScript
21 lines (18 loc) • 643 B
text/typescript
import {EventNames} from "../ws/util/EventNames.ts";
export class EventEmitter {
private listeners: Map<EventNames, ((data: any) => void)[]> = new Map();
on <T> (event: EventNames, listener: (data: T) => void) {
if (!this.listeners.has(event)) {
this.listeners.set(event, []);
}
this.listeners.get(event)?.push(listener);
}
emit <T> (event: EventNames, data: T) {
const eventListeners = this.listeners.get(event);
if (eventListeners) {
for (const listener of eventListeners) {
listener(data);
}
}
}
}