UNPKG

@neoncitylights/typed-http

Version:

Provides strongly typed HTTP header names. Supports the Fetch API, XmlHttpRequest, and the Node.js HTTP module with zero-runtime overhead.

36 lines (31 loc) 1.31 kB
import { HttpHeader, HttpRequestHeader, HttpResponseHeader } from 'httpHeaders'; declare module 'http' { interface ServerResponse { getHeader(name: HttpResponseHeader): string | number | string[] | undefined; getHeaderNames(): Lowercase<HttpResponseHeader>[]; getHeaders(): OutgoingHttpHeaders; hasHeader(name: HttpResponseHeader): boolean; removeHeader(name: HttpResponseHeader): void; setHeader(name: HttpResponseHeader, value: number | string | string[]): void; } interface ClientRequest { getHeader(name: HttpRequestHeader): string | number | string[] | undefined; getHeaderNames(): Lowercase<HttpRequestHeader>[]; getHeaders(): OutgoingHttpHeaders; getRawHeaderNames(): HttpRequestHeader[]; hasHeader(name: HttpRequestHeader): boolean; removeHeader(name: HttpRequestHeader): void; setHeader(name: HttpRequestHeader, value: number | string | string[]): void; } interface IncomingMessage { headers: { [key: HttpHeader]: string; }; } interface OutgoingMessage { getHeader(name: HttpHeader): string | number | string[] | undefined; getHeaderNames(): Lowercase<HttpHeader>[]; getHeaders(): OutgoingHttpHeaders; hasHeader(name: HttpHeader): boolean; removeHeader(name: HttpHeader): void; setHeader(name: HttpHeader, value: number | string | string[]): void; } }