47 lines
2.3 KiB
TypeScript
47 lines
2.3 KiB
TypeScript
/// <reference types="node" />
|
|
/// <reference types="node" />
|
|
/// <reference types="node" />
|
|
import * as http from 'http';
|
|
import * as https from 'https';
|
|
import { HttpClientResponse } from './index';
|
|
export interface HttpClient {
|
|
options(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
get(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
del(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
post(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
patch(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
put(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: http.OutgoingHttpHeaders): Promise<HttpClientResponse>;
|
|
requestRaw(info: RequestInfo, data: string | NodeJS.ReadableStream): Promise<HttpClientResponse>;
|
|
requestRawWithCallback(info: RequestInfo, data: string | NodeJS.ReadableStream, onResult: (err?: Error, res?: HttpClientResponse) => void): void;
|
|
}
|
|
export interface RequestHandler {
|
|
prepareRequest(options: http.RequestOptions): void;
|
|
canHandleAuthentication(response: HttpClientResponse): boolean;
|
|
handleAuthentication(httpClient: HttpClient, requestInfo: RequestInfo, data: string | NodeJS.ReadableStream | null): Promise<HttpClientResponse>;
|
|
}
|
|
export interface RequestInfo {
|
|
options: http.RequestOptions;
|
|
parsedUrl: URL;
|
|
httpModule: typeof http | typeof https;
|
|
}
|
|
export interface RequestOptions {
|
|
headers?: http.OutgoingHttpHeaders;
|
|
socketTimeout?: number;
|
|
ignoreSslError?: boolean;
|
|
allowRedirects?: boolean;
|
|
allowRedirectDowngrade?: boolean;
|
|
maxRedirects?: number;
|
|
maxSockets?: number;
|
|
keepAlive?: boolean;
|
|
deserializeDates?: boolean;
|
|
allowRetries?: boolean;
|
|
maxRetries?: number;
|
|
}
|
|
export interface TypedResponse<T> {
|
|
statusCode: number;
|
|
result: T | null;
|
|
headers: http.IncomingHttpHeaders;
|
|
}
|