UNPKG

fetch-h2

Version:

HTTP/1+2 Fetch API client for Node.js

59 lines (58 loc) 2.08 kB
/// <reference types="node" /> import { RequestOptions } from "https"; import { Socket } from "net"; import { URL } from "url"; import { Http1Options } from "./core"; import { Request } from "./request"; export interface ConnectOptions { rejectUnauthorized: boolean | undefined; createConnection: () => Socket; } export interface SocketAndCleanup { socket: Socket; cleanup: () => void; } export interface FreeSocketInfoWithSocket extends SocketAndCleanup { shouldCreateNew: boolean; } export interface FreeSocketInfoWithoutSocket { socket: never; cleanup: never; shouldCreateNew: boolean; } export declare type FreeSocketInfo = FreeSocketInfoWithSocket | FreeSocketInfoWithoutSocket; export declare class OriginPool { private usedSockets; private unusedSockets; private waiting; private keepAlive; private keepAliveMsecs; private maxSockets; private maxFreeSockets; private connOpts; constructor(keepAlive: boolean, keepAliveMsecs: number, maxSockets: number, maxFreeSockets: number, timeout: number | void); connect(options: RequestOptions): import("http").ClientRequest; addUsed(socket: Socket): () => void; getFreeSocket(): FreeSocketInfo; waitForSocket(): Promise<SocketAndCleanup>; disconnectAll(): Promise<void>; private getFirstUnused; private tryReuse; private pumpWaiting; private disconnectSocket; private makeCleaner; private moveToUnused; private moveToUsed; } export declare class H1Context { private contextPool; constructor(options: Partial<Http1Options>); getSessionForOrigin(origin: string): OriginPool; getFreeSocketForSession(session: OriginPool): FreeSocketInfo; addUsedSocket(session: OriginPool, socket: Socket): () => void; waitForSocketBySession(session: OriginPool): Promise<SocketAndCleanup>; connect(url: URL, extraOptions: ConnectOptions, request: Request): import("http").ClientRequest; makeNewConnection(url: string): Promise<Socket>; disconnect(url: string): void; disconnectAll(): void; }