@akanass/rx-http-request
Version:
The world-famous HTTP client Request now RxJS compliant, wrote in Typescript | ES6 for client and server side.
167 lines (166 loc) • 4.97 kB
TypeScript
/// <reference types="node" />
import * as request from 'request';
import { Observable } from 'rxjs';
import { Cookie, RxCookieJar } from './rx-cookie-jar';
import RequestAPI = request.RequestAPI;
import Request = request.Request;
import CoreOptions = request.CoreOptions;
import RequiredUriUrl = request.RequiredUriUrl;
import RequestResponse = request.RequestResponse;
/**
* Class definition
*/
export declare class RxHttpRequest {
private static _instance;
private readonly _request;
/**
* Returns singleton instance
*
* @return {RxHttpRequest}
*/
static instance(): RxHttpRequest;
/**
* Class constructor
*/
constructor(req: RequestAPI<Request, CoreOptions, RequiredUriUrl>);
/**
* Returns private attribute _request
*
* @return {RequestAPI<Request, CoreOptions, RequiredUriUrl>}
*/
readonly request: RequestAPI<Request, CoreOptions, RequiredUriUrl>;
/**
* This method returns a wrapper around the normal rx-http-request API that defaults to whatever options
* you pass to it.
* It does not modify the global rx-http-request API; instead, it returns a wrapper that has your default settings
* applied to it.
* You can _call .defaults() on the wrapper that is returned from rx-http-request.defaults to add/override defaults
* that were previously defaulted.
*
* @param options
*
* @return {RxHttpRequest}
*/
defaults(options: CoreOptions): RxHttpRequest;
/**
* Function to do a GET HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
get<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a GET HTTP request and to return a buffer
*
* @param uri
* @param options
*
* @return {Observable<RxHttpRequestResponse<Buffer>>}
*/
getBuffer<R = Buffer>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<Buffer>>;
/**
* Function to do a POST HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
post<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a PUT HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
put<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a PATCH HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
patch<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a DELETE HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
delete<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a HEAD HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
head<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function to do a OPTIONS HTTP request
*
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*/
options<R = any>(uri: string, options?: CoreOptions): Observable<RxHttpRequestResponse<R>>;
/**
* Function that creates a new rx cookie jar
*
* @return {Observable<RxCookieJar>}
*/
jar(): Observable<RxCookieJar>;
/**
* Function that creates a new cookie
*
* @param str {string}
*
* @return {Observable<Cookie>}
*/
cookie(str: string): Observable<Cookie>;
/**
* Function to do a HTTP request for given method
*
* @param method {string}
* @param uri {string}
* @param options {CoreOptions}
*
* @return {Observable<RxHttpRequestResponse<R>>}
*
* @private
*/
private _call;
/**
* Function to check existing function in request API passed in parameter for a new instance
*
* @param req {RequestAPI<Request, CoreOptions, RequiredUriUrl>}
*
* @private
*/
private _checkRequestParam;
}
/**
* Export {RxHttpRequest} instance
*/
export declare const RxHR: RxHttpRequest;
/**
* Export response interface
*/
export interface RxHttpRequestResponse<R = any> {
response: RequestResponse;
body: R;
}
/**
* Export all initial elements
*/
export { RequestAPI, Request, CoreOptions, RequiredUriUrl, RequestResponse };