UNPKG

swell-node

Version:
83 lines (82 loc) 2.53 kB
import * as axios from 'axios'; export declare const enum HttpMethod { get = "get", post = "post", put = "put", delete = "delete" } export interface HttpHeaders { [header: string]: axios.AxiosHeaderValue; } export interface HttpClientWrapper { client: axios.AxiosInstance; createdAt: number; activeRequests: number; totalRequests: number; } export interface ClientOptions { url?: string; verifyCert?: boolean; version?: number; timeout?: number; headers?: HttpHeaders; retries?: number; maxSockets?: number; keepAliveMs?: number; recycleAfterRequests?: number; recycleAfterMs?: number; onClientRecycle?: (stats: { createdAt: number; activeRequests: number; totalRequests: number; ageMs: number; newClientCreatedAt: number; }) => void; } /** * Swell API Client. */ export declare class Client { clientId: string; clientKey: string; options: ClientOptions; httpClient: axios.AxiosInstance | null; private _activeClient; private _oldClients; private _clientCounter; constructor(clientId?: string, clientKey?: string, options?: ClientOptions); /** * Convenience method to create a new client instance from a singleton instance. */ createClient(clientId: string, clientKey: string, options?: ClientOptions): Client; init(clientId?: string, clientKey?: string, options?: ClientOptions): void; _initHttpClient(): void; private _shouldRecycleClient; private _recycleHttpClient; private _scheduleOldClientCleanup; private _getClientForRequest; get<T>(url: string, data?: unknown, headers?: HttpHeaders): Promise<T>; post<T>(url: string, data: unknown, headers?: HttpHeaders): Promise<T>; put<T>(url: string, data: unknown, headers?: HttpHeaders): Promise<T>; delete<T>(url: string, data?: unknown, headers?: HttpHeaders): Promise<T>; request<T>(method: HttpMethod, url: string, data?: unknown, headers?: HttpHeaders): Promise<T>; /** * Get statistics about HTTP client usage */ getClientStats(): { activeClient: { createdAt: number; activeRequests: number; totalRequests: number; ageMs: number; } | null; oldClientsCount: number; oldClients: { id: string; createdAt: number; activeRequests: number; totalRequests: number; ageMs: number; }[]; }; }