integration-websocket-rest-api
Version:
A JavaScript library for easy integration of REST API and WebSocket communication with state management in JS applications.
54 lines (46 loc) • 1.66 kB
TypeScript
// typings/index.d.ts
// index.d.ts
// declare module "integration-websocket-rest-api" {
// export class ApiClient {
// constructor(apiUrl: string, headers?: Record<string, string>);
// apiUrl: string;
// sendRequest(method: string, data: any): Promise<any>;
// }
declare module "integration-websocket-rest-api" {
interface ApiClientOptions {
apiUrl: string;
headers?: Record<string, string>;
maxRetries?: number;
retryDelay?: number;
timeout?: number;
errorHandler?: (error: Error) => void;
}
type RequestInterceptor = (
config: import("axios").AxiosRequestConfig
) => void;
type ResponseInterceptor = (
response: import("axios").AxiosResponse
) => import("axios").AxiosResponse;
export class ApiClient {
constructor(apiUrl: string, headers?: Record<string, string>);
setGlobalHeaders(headers: Record<string, string>): void;
setMaxRetries(maxRetries: number): void;
setRetryDelay(retryDelay: number): void;
setTimeout(timeout: number): void;
setErrorHandler(errorHandler: (error: Error) => void): void;
addRequestInterceptor(interceptor: RequestInterceptor): void;
addResponseInterceptor(interceptor: ResponseInterceptor): void;
sendRequest(method: string, data?: any, retryCount?: number): Promise<any>;
}
export class WebSocketClient {
constructor(wsUrl: string);
wsUrl: string;
openConnection(): Promise<void>;
connect(): Promise<void>;
reconnect(): void;
sendMessage(message: string): void;
getMessage(callback: (message: string) => void): void;
getReceivedMessages(): string[];
closeConnection(): void;
}
}