UNPKG

rsocket-rxjs

Version:
40 lines (39 loc) 1.63 kB
import { Observable } from "rxjs"; import { RSocketConfig } from '../core/config/rsocket-config'; import { Payload } from '../core/protocol/payload'; export declare enum RSocketState { Disconnected = "Disconnected", Connected = "Connected", Error = "Error", Reconnecting = "Reconnecting" } export declare enum BackpressureStrategy { BufferDelay = 0, Drop = 1 } export declare type RequestResponseHandler = (payload: Payload) => Observable<Payload>; /** * Use the requester to pull elements from the stream => "backpressure" support */ export declare type RequestStreamHandler = (payload: Payload) => { stream: Observable<Payload>; backpressureStrategy: BackpressureStrategy; }; export declare type RequestFNFHandler = (payload: Payload) => void; export interface RSocket<RequestPayload, ResponsePayload, RequestOptions = never> { responder: RSocketResponder; close(): Observable<void>; state(): Observable<RSocketState>; requestResponse(payload: RequestPayload, options?: RequestOptions): Observable<ResponsePayload>; requestStream(payload: RequestPayload, requester?: Observable<number>, options?: RequestOptions): Observable<ResponsePayload>; requestFNF(payload: RequestPayload, options?: RequestOptions): void; getSetupConfig(): RSocketConfig; } export interface RSocketResponder { handleRequestStream(payload: Payload): { stream: Observable<Payload>; backpressureStrategy: BackpressureStrategy; }; handleRequestResponse(payload: Payload): Observable<Payload>; handleFNF(payload: Payload): void; }