@lifaon/rx-js-light
Version:
Blazing fast Observables
12 lines (11 loc) • 655 B
TypeScript
import { IObserver } from '../../type/observer.type';
/**
* Receives data, performs some operation on it, and may emits same or other data
* => PUSH destination (return) and PUSH source (emit)
*/
export interface IObserverPipe<GIn, GOut> {
(emit: IObserver<GOut>): IObserver<GIn>;
}
export declare type IGenericObserverPipe = IObserverPipe<any, any>;
export declare type IInferObserverPipeGIn<GObserver extends IGenericObserverPipe> = GObserver extends IObserverPipe<infer GIn, any> ? GIn : never;
export declare type IInferObserverPipeGOut<GObserver extends IGenericObserverPipe> = GObserver extends IObserverPipe<any, infer GOut> ? GOut : never;