index.d.ts 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /// <reference types="node" />
  2. import http = require("http");
  3. import ifm = require('./interfaces');
  4. export declare enum HttpCodes {
  5. OK = 200,
  6. MultipleChoices = 300,
  7. MovedPermanently = 301,
  8. ResourceMoved = 302,
  9. SeeOther = 303,
  10. NotModified = 304,
  11. UseProxy = 305,
  12. SwitchProxy = 306,
  13. TemporaryRedirect = 307,
  14. PermanentRedirect = 308,
  15. BadRequest = 400,
  16. Unauthorized = 401,
  17. PaymentRequired = 402,
  18. Forbidden = 403,
  19. NotFound = 404,
  20. MethodNotAllowed = 405,
  21. NotAcceptable = 406,
  22. ProxyAuthenticationRequired = 407,
  23. RequestTimeout = 408,
  24. Conflict = 409,
  25. Gone = 410,
  26. TooManyRequests = 429,
  27. InternalServerError = 500,
  28. NotImplemented = 501,
  29. BadGateway = 502,
  30. ServiceUnavailable = 503,
  31. GatewayTimeout = 504
  32. }
  33. export declare enum Headers {
  34. Accept = "accept",
  35. ContentType = "content-type"
  36. }
  37. export declare enum MediaTypes {
  38. ApplicationJson = "application/json"
  39. }
  40. /**
  41. * Returns the proxy URL, depending upon the supplied url and proxy environment variables.
  42. * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
  43. */
  44. export declare function getProxyUrl(serverUrl: string): string;
  45. export declare class HttpClientResponse implements ifm.IHttpClientResponse {
  46. constructor(message: http.IncomingMessage);
  47. message: http.IncomingMessage;
  48. readBody(): Promise<string>;
  49. }
  50. export declare function isHttps(requestUrl: string): boolean;
  51. export declare class HttpClient {
  52. userAgent: string | undefined;
  53. handlers: ifm.IRequestHandler[];
  54. requestOptions: ifm.IRequestOptions;
  55. private _ignoreSslError;
  56. private _socketTimeout;
  57. private _allowRedirects;
  58. private _allowRedirectDowngrade;
  59. private _maxRedirects;
  60. private _allowRetries;
  61. private _maxRetries;
  62. private _agent;
  63. private _proxyAgent;
  64. private _keepAlive;
  65. private _disposed;
  66. constructor(userAgent?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions);
  67. options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  68. get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  69. del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  70. post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  71. patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  72. put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  73. head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  74. sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  75. /**
  76. * Gets a typed object from an endpoint
  77. * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise
  78. */
  79. getJson<T>(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
  80. postJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
  81. putJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
  82. patchJson<T>(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise<ifm.ITypedResponse<T>>;
  83. /**
  84. * Makes a raw http request.
  85. * All other methods such as get, post, patch, and request ultimately call this.
  86. * Prefer get, del, post and patch
  87. */
  88. request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise<ifm.IHttpClientResponse>;
  89. /**
  90. * Needs to be called if keepAlive is set to true in request options.
  91. */
  92. dispose(): void;
  93. /**
  94. * Raw request.
  95. * @param info
  96. * @param data
  97. */
  98. requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise<ifm.IHttpClientResponse>;
  99. /**
  100. * Raw request with callback.
  101. * @param info
  102. * @param data
  103. * @param onResult
  104. */
  105. requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void;
  106. /**
  107. * Gets an http agent. This function is useful when you need an http agent that handles
  108. * routing through a proxy server - depending upon the url and proxy environment variables.
  109. * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com
  110. */
  111. getAgent(serverUrl: string): http.Agent;
  112. private _prepareRequest;
  113. private _mergeHeaders;
  114. private _getExistingOrDefaultHeader;
  115. private _getAgent;
  116. private _performExponentialBackoff;
  117. private static dateTimeDeserializer;
  118. private _processResponse;
  119. }