@tencentcloud/roomkit-electron-vue3
Version:
<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,
28 lines (20 loc) • 593 B
text/typescript
import mitt, { Emitter, EventType, Handler } from 'mitt';
class EventEmitter<T extends Record<EventType, unknown>> {
private emitter: Emitter<T>;
constructor() {
this.emitter = mitt();
}
on(eventName: keyof T, handler: Handler<T[keyof T]>) {
this.emitter.on(eventName, handler);
}
off(eventName: keyof T, handler: Handler<T[keyof T]>) {
this.emitter.off(eventName, handler);
}
emit(eventName: keyof T, event: T[keyof T]) {
this.emitter.emit(eventName, event);
}
removeAllListeners() {
this.emitter.all.clear();
}
}
export default EventEmitter;