@marxlnfcs/wildduck-api
Version:
Provides a client to interact with the wildduck api
22 lines (21 loc) • 1.31 kB
TypeScript
import { Observable, Subject } from "rxjs";
import { AxiosError, AxiosRequestConfig, AxiosResponse } from "axios";
export declare function createEventClient(): EventClient;
export interface EventClientItem {
id: string;
data$: Subject<any>;
observer$: Observable<EventClientEvent>;
}
export interface EventClientEvent<RequestData = any, ResponseData = any> {
request?: AxiosRequestConfig<RequestData> | null;
response?: AxiosResponse<ResponseData, RequestData> | null;
error?: AxiosError<ResponseData, RequestData> | null;
}
export declare class EventClient {
private eventHandlers;
on<RequestData = any, ResponseData = any>(id: string | Function): Observable<EventClientEvent<RequestData, ResponseData>>;
emit<RequestData = any, ResponseData = any>(id: string | Function, data: EventClientEvent<RequestData, ResponseData>): EventClientEvent<RequestData, ResponseData>;
emitFromResponse<RequestData = any, ResponseData = any>(id: string | Function, response: AxiosResponse<ResponseData, RequestData>): EventClientEvent<RequestData, ResponseData>;
emitFromError<RequestData = any, ResponseData = any>(id: string | Function, error: AxiosError<ResponseData, RequestData>): EventClientEvent<RequestData, ResponseData>;
destroy(id?: string | Function | null): this;
}