@dark-engine/core
Version:
The lightweight and powerful UI rendering engine without dependencies and written in TypeScript (Browser, Node.js, Android, iOS, Windows, Linux, macOS)
22 lines (21 loc) • 616 B
JavaScript
class EventEmitter {
subscribers = new Map();
on(e, fn) {
!this.subscribers.has(e) && this.subscribers.set(e, new Set());
this.subscribers.get(e).add(fn);
return () => this.subscribers.has(e) && this.subscribers.get(e).delete(fn);
}
emit(e, data) {
if (!this.subscribers.has(e)) return;
const subs = Array.from(this.subscribers.get(e));
for (const sub of subs) sub(data);
}
kill() {
this.subscribers = new Map();
}
__getSize(e) {
return e ? this.subscribers.get(e)?.size ?? 0 : this.subscribers.size;
}
}
export { EventEmitter };
//# sourceMappingURL=emitter.js.map