20 lines
500 B
TypeScript
20 lines
500 B
TypeScript
import {EventEmitter} from "events"
|
|
|
|
/**
|
|
* Extended EventEmitter that also emits all events to '*' listeners
|
|
*/
|
|
export class Emitter extends EventEmitter {
|
|
/**
|
|
* Emits an event to listeners and to '*' listeners
|
|
* @param type - Event type/name
|
|
* @param args - Arguments to pass to listeners
|
|
* @returns True if event had listeners
|
|
*/
|
|
emit(type: string, ...args: any[]) {
|
|
const a = super.emit(type, ...args)
|
|
const b = super.emit("*", type, ...args)
|
|
|
|
return a && b
|
|
}
|
|
}
|