interfaces.d.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /// <reference types="node" />
  2. import http = require("http");
  3. import url = require("url");
  4. export interface IHeaders {
  5. [key: string]: any;
  6. }
  7. export interface IHttpClient {
  8. options(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  9. get(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  10. del(requestUrl: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  11. post(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  12. patch(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  13. put(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  14. sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: IHeaders): Promise<IHttpClientResponse>;
  15. request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: IHeaders): Promise<IHttpClientResponse>;
  16. requestRaw(info: IRequestInfo, data: string | NodeJS.ReadableStream): Promise<IHttpClientResponse>;
  17. requestRawWithCallback(info: IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: IHttpClientResponse) => void): void;
  18. }
  19. export interface IRequestHandler {
  20. prepareRequest(options: http.RequestOptions): void;
  21. canHandleAuthentication(response: IHttpClientResponse): boolean;
  22. handleAuthentication(httpClient: IHttpClient, requestInfo: IRequestInfo, objs: any): Promise<IHttpClientResponse>;
  23. }
  24. export interface IHttpClientResponse {
  25. message: http.IncomingMessage;
  26. readBody(): Promise<string>;
  27. }
  28. export interface IRequestInfo {
  29. options: http.RequestOptions;
  30. parsedUrl: url.Url;
  31. httpModule: any;
  32. }
  33. export interface IRequestOptions {
  34. headers?: IHeaders;
  35. socketTimeout?: number;
  36. ignoreSslError?: boolean;
  37. allowRedirects?: boolean;
  38. allowRedirectDowngrade?: boolean;
  39. maxRedirects?: number;
  40. maxSockets?: number;
  41. keepAlive?: boolean;
  42. deserializeDates?: boolean;
  43. allowRetries?: boolean;
  44. maxRetries?: number;
  45. }
  46. export interface ITypedResponse<T> {
  47. statusCode: number;
  48. result: T | null;
  49. headers: Object;
  50. }