UNPKG

typed-rest-client

Version:

Node Rest and Http Clients for use with TypeScript

78 lines (77 loc) 3.99 kB
import httpm = require('./HttpClient'); import ifm = require("./Interfaces"); export interface IRestResponse<T> { statusCode: number; result: T | null; headers: Object; } export interface IRequestOptions { acceptHeader?: string; additionalHeaders?: ifm.IHeaders; responseProcessor?: Function; deserializeDates?: boolean; queryParameters?: ifm.IRequestQueryParams; } export declare class RestClient { client: httpm.HttpClient; versionParam: string; /** * Creates an instance of the RestClient * @constructor * @param {string} userAgent - userAgent for requests * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied) * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout) */ constructor(userAgent: string | null | undefined, baseUrl?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); private _baseUrl; /** * Gets a resource from an endpoint * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} requestUrl - fully qualified or relative url * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ options<T>(requestUrl: string, options?: IRequestOptions): Promise<IRestResponse<T>>; /** * Gets a resource from an endpoint * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} resource - fully qualified url or relative path * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ get<T>(resource: string, options?: IRequestOptions): Promise<IRestResponse<T>>; /** * Deletes a resource from an endpoint * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} resource - fully qualified or relative url * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ del<T>(resource: string, options?: IRequestOptions): Promise<IRestResponse<T>>; /** * Creates resource(s) from an endpoint * T type of object returned. * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} resource - fully qualified or relative url * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ create<T>(resource: string, resources: any, options?: IRequestOptions): Promise<IRestResponse<T>>; /** * Updates resource(s) from an endpoint * T type of object returned. * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} resource - fully qualified or relative url * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ update<T>(resource: string, resources: any, options?: IRequestOptions): Promise<IRestResponse<T>>; /** * Replaces resource(s) from an endpoint * T type of object returned. * Be aware that not found returns a null. Other error conditions reject the promise * @param {string} resource - fully qualified or relative url * @param {IRequestOptions} requestOptions - (optional) requestOptions object */ replace<T>(resource: string, resources: any, options?: IRequestOptions): Promise<IRestResponse<T>>; uploadStream<T>(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, options?: IRequestOptions): Promise<IRestResponse<T>>; private _headersFromOptions; private static dateTimeDeserializer; protected processResponse<T>(res: httpm.HttpClientResponse, options: IRequestOptions): Promise<IRestResponse<T>>; }