mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-06-04 06:19:24 +08:00
event-kit: update to use techniques from Atom.
This commit is contained in:
48
types/event-kit/index.d.ts
vendored
48
types/event-kit/index.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
// Type definitions for event-kit 2.x
|
||||
// Type definitions for event-kit 2.4
|
||||
// Project: https://github.com/atom/event-kit
|
||||
// Definitions by: GlenCFL <https://github.com/GlenCFL>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
@@ -69,7 +69,8 @@ export class CompositeDisposable implements DisposableLike {
|
||||
* for handlers registered via ::on to be invoked with calls to ::emit.
|
||||
*/
|
||||
// tslint:disable-next-line:no-any
|
||||
export class Emitter<Emissions = { [key: string]: any }> implements DisposableLike {
|
||||
export class Emitter<OptionalEmissions = { [key: string]: any }, RequiredEmissions = {}>
|
||||
implements DisposableLike {
|
||||
disposed: boolean;
|
||||
|
||||
/** Construct an emitter. */
|
||||
@@ -83,31 +84,58 @@ export class Emitter<Emissions = { [key: string]: any }> implements DisposableLi
|
||||
|
||||
// Event Subscription
|
||||
/** Registers a handler to be invoked whenever the given event is emitted. */
|
||||
on<T extends keyof Emissions>(eventName: T, handler: (value?: Emissions[T]) => void):
|
||||
Disposable;
|
||||
on<T extends keyof OptionalEmissions>(eventName: T, handler: (value?:
|
||||
OptionalEmissions[T]) => void): Disposable;
|
||||
/** Registers a handler to be invoked whenever the given event is emitted. */
|
||||
on<T extends keyof RequiredEmissions>(eventName: T, handler: (value:
|
||||
RequiredEmissions[T]) => void): Disposable;
|
||||
|
||||
/**
|
||||
* Register the given handler function to be invoked the next time an event
|
||||
* with the given name is emitted via ::emit.
|
||||
*/
|
||||
once<T extends keyof Emissions>(eventName: T, handler: (value?: Emissions[T]) => void):
|
||||
Disposable;
|
||||
once<T extends keyof OptionalEmissions>(eventName: T, handler: (value?:
|
||||
OptionalEmissions[T]) => void): Disposable;
|
||||
/**
|
||||
* Register the given handler function to be invoked the next time an event
|
||||
* with the given name is emitted via ::emit.
|
||||
*/
|
||||
once<T extends keyof RequiredEmissions>(eventName: T, handler: (value:
|
||||
RequiredEmissions[T]) => void): Disposable;
|
||||
|
||||
/**
|
||||
* Register the given handler function to be invoked before all other
|
||||
* handlers existing at the time of subscription whenever events by the
|
||||
* given name are emitted via ::emit.
|
||||
*/
|
||||
preempt<T extends keyof Emissions>(eventName: T, handler: (value?: Emissions[T]) => void):
|
||||
Disposable;
|
||||
preempt<T extends keyof OptionalEmissions>(eventName: T, handler: (value?:
|
||||
OptionalEmissions[T]) => void): Disposable;
|
||||
/**
|
||||
* Register the given handler function to be invoked before all other
|
||||
* handlers existing at the time of subscription whenever events by the
|
||||
* given name are emitted via ::emit.
|
||||
*/
|
||||
preempt<T extends keyof RequiredEmissions>(eventName: T, handler: (value:
|
||||
RequiredEmissions[T]) => void): Disposable;
|
||||
|
||||
// Event Emission
|
||||
/** Invoke the handlers registered via ::on for the given event name. */
|
||||
emit<T extends keyof Emissions>(eventName: T, value?: Emissions[T]): void;
|
||||
emit<T extends keyof OptionalEmissions>(eventName: T, value?:
|
||||
OptionalEmissions[T]): void;
|
||||
/** Invoke the handlers registered via ::on for the given event name. */
|
||||
emit<T extends keyof RequiredEmissions>(eventName: T, value:
|
||||
RequiredEmissions[T]): void;
|
||||
|
||||
/**
|
||||
* Asynchronously invoke the handlers registered via ::on for the given event name.
|
||||
* @return A promise that will be fulfilled once all handlers have been invoked.
|
||||
*/
|
||||
emitAsync<T extends keyof Emissions>(eventName: T, value?: Emissions[T]): Promise<void>;
|
||||
emitAsync<T extends keyof OptionalEmissions>(eventName: T, value?:
|
||||
OptionalEmissions[T]): Promise<void>;
|
||||
/**
|
||||
* Asynchronously invoke the handlers registered via ::on for the given event name.
|
||||
* @return A promise that will be fulfilled once all handlers have been invoked.
|
||||
*/
|
||||
emitAsync<T extends keyof RequiredEmissions>(eventName: T, value:
|
||||
RequiredEmissions[T]): Promise<void>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user