@emeraldpay/api
Version:
Common code for Emerald gRPC APIs
27 lines (26 loc) • 1.12 kB
TypeScript
import { Publisher, RemoteCall } from './index';
export declare enum ConnectionStatus {
PENDING = 0,
CONNECTING = 1,
CONNECTED = 2,
ERRORED = 3,
CLOSED = 4
}
export declare enum ConnectivityState {
IDLE = 0,
CONNECTING = 1,
READY = 2,
TRANSIENT_FAILURE = 3,
SHUTDOWN = 4
}
export type ConnectionListener = (status: ConnectionStatus) => void;
export type StateListener = (error: Error | undefined, state: ConnectivityState) => void;
export declare function asStatus(state: ConnectivityState | number): ConnectionStatus;
export interface Channel {
getState(): ConnectivityState;
watch(current: ConnectivityState, deadline: number, handler: StateListener): any;
}
export declare function isChannel(channel: unknown): channel is Channel;
export declare function alwaysRetry<T, R>(channel: Channel, call: RemoteCall<R, T>, request: R, retries: number): Publisher<T>;
export declare function readOnce<T, R>(channel: Channel, call: RemoteCall<R, T>, request: R, retries: number): Publisher<T>;
export declare function asStateListener(listener: ConnectionListener): StateListener;