initial
[sketchy-heroes.git] / src / public / app / events.ts
1
2
3 type EventHandler = (args: any) => void;
4
5 export class Events {
6   events: Record<string, EventHandler[]>;
7
8   constructor() {
9     this.events = {};
10   }
11
12   on(eventName: string, fn: EventHandler) {
13     if(!this.events[eventName]) {
14       this.events[eventName] = [];
15     }
16
17     this.events[eventName].push(fn);
18   }
19
20   emit(eventName: string, args: any) {
21     if(this.events[eventName]) {
22       this.events[eventName].forEach(fn => fn(args));
23     }
24   }
25 }