@stoplight/lifecycle
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -1,8 +0,9 @@ | ||
import { EventEmitterOn, IEventEmitter } from './types'; | ||
export declare class EventEmitter<T, N = string> implements IEventEmitter<T, N> { | ||
import { IDisposable } from '../disposable'; | ||
import { IEventEmitter } from './types'; | ||
export declare class EventEmitter<E extends object> implements IEventEmitter<E> { | ||
private _emitter; | ||
on(type: N): EventEmitterOn<T>; | ||
emit(type: N, e: T): void; | ||
on(type: unknown, listener: Function): IDisposable; | ||
emit(type: unknown, ...args: Array<unknown>): void; | ||
readonly hasListeners: boolean; | ||
dispose(): void; | ||
} |
@@ -9,12 +9,10 @@ "use strict"; | ||
} | ||
on(type) { | ||
return listener => { | ||
this._emitter.on(type, listener); | ||
return disposable_1.createDisposable(() => { | ||
this._emitter.off(type, listener); | ||
}); | ||
}; | ||
on(type, listener) { | ||
this._emitter.on(String(type), listener); | ||
return disposable_1.createDisposable(() => { | ||
this._emitter.off(String(type), listener); | ||
}); | ||
} | ||
emit(type, e) { | ||
this._emitter.trigger(type, [e]); | ||
emit(type, ...args) { | ||
this._emitter.trigger(String(type), args); | ||
} | ||
@@ -24,2 +22,4 @@ get hasListeners() { | ||
for (const ev in eventsToListeners) { | ||
if (!{}.hasOwnProperty.call(eventsToListeners, ev)) | ||
continue; | ||
const l = eventsToListeners[ev]; | ||
@@ -26,0 +26,0 @@ if (l !== undefined && l.length > 0) { |
@@ -0,8 +1,9 @@ | ||
import StrictEventEmitter from 'strict-event-emitter-types'; | ||
import { IDisposable } from '../disposable'; | ||
export declare type EventEmitterOn<T> = (listener: EventEmitterListener<T>) => IDisposable; | ||
export declare type EventEmitterListener<T> = (e: T) => void; | ||
export interface IEventEmitter<T, N = string> extends IDisposable { | ||
on: (type: N) => EventEmitterOn<T>; | ||
emit: (type: N, e: T) => void; | ||
export interface IEventEmitter<E extends object> extends StrictEventEmitter<IEventEmitterInstance, E> { | ||
} | ||
export interface IEventEmitterInstance extends IDisposable { | ||
on(type: number | string, listener: any): IDisposable; | ||
emit<A extends Array<unknown> = Array<unknown>>(type: number | string, ...args: A): void; | ||
hasListeners: boolean; | ||
} |
{ | ||
"name": "@stoplight/lifecycle", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Event and disposable helpers.", | ||
@@ -22,5 +22,6 @@ "keywords": [], | ||
"dependencies": { | ||
"wolfy87-eventemitter": "5.2.x" | ||
"strict-event-emitter-types": "^2.0.0", | ||
"wolfy87-eventemitter": "5.2.6" | ||
}, | ||
"typings": "index.d.ts" | ||
} |
Sorry, the diff of this file is not supported yet
21842
129
2
+ Addedstrict-event-emitter-types@2.0.0(transitive)
+ Addedwolfy87-eventemitter@5.2.6(transitive)
- Removedwolfy87-eventemitter@5.2.9(transitive)
Updatedwolfy87-eventemitter@5.2.6