@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)
25 lines (24 loc) • 736 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
exports.EventEmitter = void 0;
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;
}
}
exports.EventEmitter = EventEmitter;
//# sourceMappingURL=emitter.js.map