UNPKG

urllib

Version:

Help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more. Base undici fetch API.

68 lines (61 loc) 1.55 kB
import { Readable } from 'stream'; import { IncomingHttpHeaders } from 'http'; export type SocketInfo = { id: number; localAddress: string; localPort: number; remoteAddress: string; remotePort: number; remoteFamily: string; bytesWritten: number; bytesRead: number; handledRequests: number; handledResponses: number; }; /** * https://eggjs.org/en/core/httpclient.html#timing-boolean */ export type Timing = { // socket assigned queuing: number; // dns lookup time // dnslookup: number; // socket connected connected: number; // request headers sent requestHeadersSent: number; // request sent, including headers and body requestSent: number; // Time to first byte (TTFB), the response headers have been received waiting: number; // the response body and trailers have been received contentDownload: number; }; export type BaseResponseMeta = { status: number; statusCode: number; headers: IncomingHttpHeaders; timing: Timing; // SocketInfo socket: SocketInfo; }; export type HttpClientResponseMeta = BaseResponseMeta & { size: number; aborted: boolean; rt: number; keepAliveSocket: boolean; requestUrls: string[]; }; export type ReadableWithMeta = Readable & BaseResponseMeta; export type HttpClientResponse = { opaque: unknown; data: any; status: number; // alias to status, keep compatibility statusCode: number; headers: IncomingHttpHeaders; url: string; redirected: boolean; requestUrls: string[]; res: ReadableWithMeta | HttpClientResponseMeta; };