UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

118 lines 3.46 kB
/** * Опции повторных попыток запроса */ export interface RetryOptions { /** * Максимальное количество повторных попыток */ maxRetries?: number; /** * Базовая задержка между попытками (в мс) */ retryDelay?: number; /** * Максимальная задержка между попытками (в мс) */ maxRetryDelay?: number; /** * HTTP статусы, для которых нужно делать повторную попытку */ retryStatusCodes?: number[]; /** * Глобально отключить повторные попытки */ disabled?: boolean; } /** * Опции HTTP клиента */ export interface HttpClientOptions { /** * HTTP заголовки */ headers?: Record<string, string>; /** * Таймаут запроса (в мс) */ timeout?: number; /** * Опции повторных попыток */ retry?: RetryOptions; /** * HTTPS агент для Node.js среды * В браузере не используется */ httpsAgent?: any; } /** * Опции запроса */ export interface RequestOptions { /** * URL для запроса (относительно baseURL) */ url: string; /** * HTTP метод */ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD'; /** * Данные для отправки (для POST, PUT, PATCH) */ data?: any; /** * Query параметры */ params?: Record<string, any>; /** * HTTP заголовки для этого запроса */ headers?: Record<string, string>; /** * Таймаут для этого запроса (в мс) */ timeout?: number; /** * Отключить автоматические повторные попытки для этого запроса */ noRetry?: boolean; /** * Тип ответа (stream для потоковой передачи) */ responseType?: 'json' | 'text' | 'stream'; } /** * Интерфейс HTTP клиента */ export interface IHttpClient { /** * Выполняет HTTP запрос */ request<T = any>(options: RequestOptions): Promise<T>; /** * Выполняет GET запрос */ get<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>; /** * Выполняет POST запрос */ post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>; /** * Выполняет PUT запрос */ put<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>; /** * Выполняет DELETE запрос */ delete<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>; /** * Выполняет PATCH запрос */ patch<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>; /** * Выполняет POST запрос с потоковым ответом */ postStream(url: string, data?: any, headers?: Record<string, string>): Promise<Response>; } //# sourceMappingURL=http-client.d.ts.map