sip.js
Version:
A SIP library for JavaScript
89 lines (88 loc) • 3 kB
TypeScript
/**
* Generic observable.
* @public
*/
export interface Emitter<T> {
/**
* Sets up a function that will be called whenever the target changes.
* @param listener - Callback function.
* @param options - An options object that specifies characteristics about the listener.
* If once true, indicates that the listener should be invoked at most once after being added.
* If once true, the listener would be automatically removed when invoked.
*/
addListener(listener: (data: T) => void, options?: {
once?: boolean;
}): void;
/**
* Removes from the listener previously registered with addListener.
* @param listener - Callback function.
*/
removeListener(listener: (data: T) => void): void;
/**
* Registers a listener.
* @param listener - Callback function.
* @deprecated Use addListener.
*/
on(listener: (data: T) => void): void;
/**
* Unregisters a listener.
* @param listener - Callback function.
* @deprecated Use removeListener.
*/
off(listener: (data: T) => void): void;
/**
* Registers a listener then unregisters the listener after one event emission.
* @param listener - Callback function.
* @deprecated Use addListener.
*/
once(listener: (data: T) => void): void;
}
/**
* An {@link Emitter} implementation.
* @internal
*/
export declare class EmitterImpl<T> implements Emitter<T> {
private listeners;
/**
* Sets up a function that will be called whenever the target changes.
* @param listener - Callback function.
* @param options - An options object that specifies characteristics about the listener.
* If once true, indicates that the listener should be invoked at most once after being added.
* If once true, the listener would be automatically removed when invoked.
*/
addListener(listener: (data: T) => void, options?: {
once?: boolean;
}): void;
/**
* Emit change.
* @param data - Data to emit.
*/
emit(data: T): void;
/**
* Removes all listeners previously registered with addListener.
*/
removeAllListeners(): void;
/**
* Removes a listener previously registered with addListener.
* @param listener - Callback function.
*/
removeListener(listener: (data: T) => void): void;
/**
* Registers a listener.
* @param listener - Callback function.
* @deprecated Use addListener.
*/
on(listener: (data: T) => void): void;
/**
* Unregisters a listener.
* @param listener - Callback function.
* @deprecated Use removeListener.
*/
off(listener: (data: T) => void): void;
/**
* Registers a listener then unregisters the listener after one event emission.
* @param listener - Callback function.
* @deprecated Use addListener.
*/
once(listener: (data: T) => void): void;
}