Spaces:
Sleeping
Sleeping
/// <reference types="node" /> | |
import net from 'net'; | |
import http from 'http'; | |
import https from 'https'; | |
import { Duplex } from 'stream'; | |
import { EventEmitter } from 'events'; | |
declare function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent; | |
declare function createAgent(callback: createAgent.AgentCallback, opts?: createAgent.AgentOptions): createAgent.Agent; | |
declare namespace createAgent { | |
interface ClientRequest extends http.ClientRequest { | |
_last?: boolean; | |
_hadError?: boolean; | |
method: string; | |
} | |
interface AgentRequestOptions { | |
host?: string; | |
path?: string; | |
port: number; | |
} | |
interface HttpRequestOptions extends AgentRequestOptions, Omit<http.RequestOptions, keyof AgentRequestOptions> { | |
secureEndpoint: false; | |
} | |
interface HttpsRequestOptions extends AgentRequestOptions, Omit<https.RequestOptions, keyof AgentRequestOptions> { | |
secureEndpoint: true; | |
} | |
type RequestOptions = HttpRequestOptions | HttpsRequestOptions; | |
type AgentLike = Pick<createAgent.Agent, 'addRequest'> | http.Agent; | |
type AgentCallbackReturn = Duplex | AgentLike; | |
type AgentCallbackCallback = (err?: Error | null, socket?: createAgent.AgentCallbackReturn) => void; | |
type AgentCallbackPromise = (req: createAgent.ClientRequest, opts: createAgent.RequestOptions) => createAgent.AgentCallbackReturn | Promise<createAgent.AgentCallbackReturn>; | |
type AgentCallback = typeof Agent.prototype.callback; | |
type AgentOptions = { | |
timeout?: number; | |
}; | |
/** | |
* Base `http.Agent` implementation. | |
* No pooling/keep-alive is implemented by default. | |
* | |
* @param {Function} callback | |
* @api public | |
*/ | |
class Agent extends EventEmitter { | |
timeout: number | null; | |
maxFreeSockets: number; | |
maxTotalSockets: number; | |
maxSockets: number; | |
sockets: { | |
[key: string]: net.Socket[]; | |
}; | |
freeSockets: { | |
[key: string]: net.Socket[]; | |
}; | |
requests: { | |
[key: string]: http.IncomingMessage[]; | |
}; | |
options: https.AgentOptions; | |
private promisifiedCallback?; | |
private explicitDefaultPort?; | |
private explicitProtocol?; | |
constructor(callback?: createAgent.AgentCallback | createAgent.AgentOptions, _opts?: createAgent.AgentOptions); | |
get defaultPort(): number; | |
set defaultPort(v: number); | |
get protocol(): string; | |
set protocol(v: string); | |
callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions, fn: createAgent.AgentCallbackCallback): void; | |
callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions): createAgent.AgentCallbackReturn | Promise<createAgent.AgentCallbackReturn>; | |
/** | |
* Called by node-core's "_http_client.js" module when creating | |
* a new HTTP request with this Agent instance. | |
* | |
* @api public | |
*/ | |
addRequest(req: ClientRequest, _opts: RequestOptions): void; | |
freeSocket(socket: net.Socket, opts: AgentOptions): void; | |
destroy(): void; | |
} | |
} | |
export = createAgent; | |