| 25 | } |
| 26 | |
| 27 | export class EventsEmitter<T> implements IAmDisposable { |
| 28 | private emitter = new evt.EventEmitter(); |
| 29 | |
| 30 | public fire(event: string, x: T): void { |
| 31 | this.emitter.emit(event, x); |
| 32 | } |
| 33 | |
| 34 | public listen(event: string, listener: (e: T) => any, thisArgs?: any): IAmDisposable { |
| 35 | if (thisArgs) |
| 36 | listener = listener.bind(thisArgs); |
| 37 | this.emitter.on(event, listener); |
| 38 | return { |
| 39 | dispose: () => { this.emitter.removeListener(event, listener); }, |
| 40 | }; |
| 41 | } |
| 42 | |
| 43 | public dispose() { |
| 44 | this.emitter.removeAllListeners(); |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | export type Event<T> = (listener: (e: T) => any, thisArgs?: any) => IAmDisposable; |
nothing calls this directly
no outgoing calls
no test coverage detected