deepl-node
Version:
deepl-node is the official DeepL Node.js client library
59 lines (58 loc) • 2.32 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { AxiosRequestConfig } from 'axios';
import { URLSearchParams } from 'url';
import { IncomingMessage } from 'http';
import { ProxyConfig } from './types';
type HttpMethod = 'GET' | 'DELETE' | 'POST' | 'PUT' | 'PATCH';
/**
* Options for sending HTTP requests.
* @private
*/
interface SendRequestOptions {
/**
* Fields to include in message body (or params). Values must be either strings, or arrays of
* strings (for repeated parameters).
*/
data?: URLSearchParams;
/** Extra HTTP headers to include in request, in addition to headers defined in constructor. */
headers?: Record<string, string>;
/** Buffer containing file data to include. */
fileBuffer?: Buffer;
/** Filename of file to include. */
filename?: string;
}
/**
* Internal class implementing HTTP requests.
* @private
*/
export declare class HttpClient {
private readonly serverUrl;
private readonly headers;
private readonly minTimeout;
private readonly maxRetries;
private readonly proxy?;
constructor(serverUrl: string, headers: Record<string, string>, maxRetries: number, minTimeout: number, proxy?: ProxyConfig);
prepareRequest(method: HttpMethod, url: string, timeoutMs: number, responseAsStream: boolean, options: SendRequestOptions): AxiosRequestConfig;
/**
* Makes API request retrying if necessary, and returns (as Promise) response.
* @param method HTTP method, for example 'GET'
* @param url Path to endpoint, excluding base server URL.
* @param options Additional options controlling request.
* @param responseAsStream Set to true if the return type is IncomingMessage.
* @return Fulfills with status code and response (as text or stream).
*/
sendRequestWithBackoff<TContent extends string | IncomingMessage>(method: HttpMethod, url: string, options?: SendRequestOptions, responseAsStream?: boolean): Promise<{
statusCode: number;
content: TContent;
}>;
/**
* Performs given HTTP request and returns status code and response content (text or stream).
* @param axiosRequestConfig
* @private
*/
private static sendAxiosRequest;
private static shouldRetry;
}
export {};