12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { URL } from 'url'
- import { TlsOptions } from 'tls'
- import Dispatcher from './dispatcher'
- import buildConnector from "./connector";
- /**
- * A basic HTTP/1.1 client, mapped on top a single TCP/TLS connection. Pipelining is disabled by default.
- */
- export class Client extends Dispatcher {
- constructor(url: string | URL, options?: Client.Options);
- /** Property to get and set the pipelining factor. */
- pipelining: number;
- /** `true` after `client.close()` has been called. */
- closed: boolean;
- /** `true` after `client.destroyed()` has been called or `client.close()` has been called and the client shutdown has completed. */
- destroyed: boolean;
- }
- export declare namespace Client {
- export interface OptionsInterceptors {
- Client: readonly Dispatcher.DispatchInterceptor[];
- }
- export interface Options {
- /** TODO */
- interceptors?: OptionsInterceptors;
- /** The maximum length of request headers in bytes. Default: Node.js' `--max-http-header-size` or `16384` (16KiB). */
- maxHeaderSize?: number;
- /** The amount of time, in milliseconds, the parser will wait to receive the complete HTTP headers (Node 14 and above only). Default: `300e3` milliseconds (300s). */
- headersTimeout?: number;
- /** @deprecated unsupported socketTimeout, use headersTimeout & bodyTimeout instead */
- socketTimeout?: never;
- /** @deprecated unsupported requestTimeout, use headersTimeout & bodyTimeout instead */
- requestTimeout?: never;
- /** TODO */
- connectTimeout?: number;
- /** The timeout after which a request will time out, in milliseconds. Monitors time between receiving body data. Use `0` to disable it entirely. Default: `300e3` milliseconds (300s). */
- bodyTimeout?: number;
- /** @deprecated unsupported idleTimeout, use keepAliveTimeout instead */
- idleTimeout?: never;
- /** @deprecated unsupported keepAlive, use pipelining=0 instead */
- keepAlive?: never;
- /** the timeout, in milliseconds, after which a socket without active requests will time out. Monitors time between activity on a connected socket. This value may be overridden by *keep-alive* hints from the server. Default: `4e3` milliseconds (4s). */
- keepAliveTimeout?: number;
- /** @deprecated unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead */
- maxKeepAliveTimeout?: never;
- /** the maximum allowed `idleTimeout`, in milliseconds, when overridden by *keep-alive* hints from the server. Default: `600e3` milliseconds (10min). */
- keepAliveMaxTimeout?: number;
- /** A number of milliseconds subtracted from server *keep-alive* hints when overriding `idleTimeout` to account for timing inaccuracies caused by e.g. transport latency. Default: `1e3` milliseconds (1s). */
- keepAliveTimeoutThreshold?: number;
- /** TODO */
- socketPath?: string;
- /** The amount of concurrent requests to be sent over the single TCP/TLS connection according to [RFC7230](https://tools.ietf.org/html/rfc7230#section-6.3.2). Default: `1`. */
- pipelining?: number;
- /** @deprecated use the connect option instead */
- tls?: never;
- /** If `true`, an error is thrown when the request content-length header doesn't match the length of the request body. Default: `true`. */
- strictContentLength?: boolean;
- /** TODO */
- maxCachedSessions?: number;
- /** TODO */
- maxRedirections?: number;
- /** TODO */
- connect?: buildConnector.BuildOptions | buildConnector.connector;
- /** TODO */
- maxRequestsPerClient?: number;
- /** TODO */
- localAddress?: string;
- /** Max response body size in bytes, -1 is disabled */
- maxResponseSize?: number;
- /** Enables a family autodetection algorithm that loosely implements section 5 of RFC 8305. */
- autoSelectFamily?: boolean;
- /** The amount of time in milliseconds to wait for a connection attempt to finish before trying the next address when using the `autoSelectFamily` option. */
- autoSelectFamilyAttemptTimeout?: number;
- /**
- * @description Enables support for H2 if the server has assigned bigger priority to it through ALPN negotiation.
- * @default false
- */
- allowH2?: boolean;
- /**
- * @description Dictates the maximum number of concurrent streams for a single H2 session. It can be overriden by a SETTINGS remote frame.
- * @default 100
- */
- maxConcurrentStreams?: number
- }
- export interface SocketInfo {
- localAddress?: string
- localPort?: number
- remoteAddress?: string
- remotePort?: number
- remoteFamily?: string
- timeout?: number
- bytesWritten?: number
- bytesRead?: number
- }
- }
- export default Client;
|