@indiv/common
Version:
一个 web mvvm 库。A web mvvm library.
159 lines (158 loc) • 6.46 kB
TypeScript
import { AxiosPromise, AxiosInterceptorManager, AxiosRequestConfig } from 'axios';
import { Observable } from 'rxjs';
export interface HttpClientRequestConfig extends AxiosRequestConfig {
}
export interface HttpClientResponse<T = any> {
data: T;
status: number;
statusText: string;
headers: any;
config: HttpClientRequestConfig;
request?: any;
}
export interface HttpClientRequestInstance {
(config: HttpClientRequestConfig): AxiosPromise;
(url: string, config?: HttpClientRequestConfig): AxiosPromise;
defaults: HttpClientRequestConfig;
interceptors: {
request: AxiosInterceptorManager<HttpClientRequestConfig>;
response: AxiosInterceptorManager<HttpClientResponse>;
};
request<T = any>(config: HttpClientRequestConfig): AxiosPromise<T>;
get<T = any>(url: string, config?: HttpClientRequestConfig): AxiosPromise<T>;
delete(url: string, config?: HttpClientRequestConfig): AxiosPromise;
head(url: string, config?: HttpClientRequestConfig): AxiosPromise;
post<T = any>(url: string, data?: any, config?: HttpClientRequestConfig): AxiosPromise<T>;
put<T = any>(url: string, data?: any, config?: HttpClientRequestConfig): AxiosPromise<T>;
patch<T = any>(url: string, data?: any, config?: HttpClientRequestConfig): AxiosPromise<T>;
}
/**
* HttpClient for InDiv
*
* via package axios
* use it as a singleton service
*
* @export
* @class HttpClient
*/
export declare class HttpClient {
/**
* create a HttpClient Request and return Request Instance
*
* you can use Instance to set interceptors , use Http request and more.
* attention! return value is't a Observable, you can transform by yourself.
*
* @param {string} url
* @param {HttpClientRequestConfig} config
* @returns {HttpClientRequestInstance}
* @memberof HttpClient
*/
createRequest(url: string, config: HttpClientRequestConfig): HttpClientRequestInstance;
/**
* create a HttpClient Request and return a HttpClientResponse Observable
*
* @template T
* @param {HttpClientRequestConfig} config
* @returns {Observable<HttpClientResponse<T>>}
* @memberof HttpClient
*/
request<T = any>(url: string, config: HttpClientRequestConfig): Observable<HttpClientResponse<T>>;
/**
* create a get HttpClient Request and return a HttpClientResponse Observable
*
* @template T
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<T>>}
* @memberof HttpClient
*/
get<T = any>(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<T>>;
/**
* create a delete HttpClient Request and return a HttpClientResponse Observable
*
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<any>>}
* @memberof HttpClient
*/
delete(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<any>>;
/**
* create a head HttpClient Request and return a HttpClientResponse Observable
*
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<any>>}
* @memberof HttpClient
*/
head(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<any>>;
/**
* create a post HttpClient Request and return a HttpClientResponse Observable
*
* @template T
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<T>>}
* @memberof HttpClient
*/
post<T = any>(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<T>>;
/**
* create a put HttpClient Request and return a HttpClientResponse Observable
*
* @template T
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<T>>}
* @memberof HttpClient
*/
put<T = any>(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<T>>;
/**
* create a patch HttpClient Request and return a HttpClientResponse Observable
*
* @template T
* @param {string} url
* @param {HttpClientRequestConfig} [config]
* @returns {Observable<HttpClientResponse<T>>}
* @memberof HttpClient
*/
patch<T = any>(url: string, config?: HttpClientRequestConfig): Observable<HttpClientResponse<T>>;
/**
* create a global request interceptor and return requestInterceptor's id
*
* detail: https://github.com/axios/axios#interceptors
*
* @param {((value: HttpClientRequestConfig) => HttpClientRequestConfig | Promise<HttpClientRequestConfig>)} [onFulfilled]
* @param {(error: any) => any} [onRejected]
* @returns {number}
* @memberof HttpClient
*/
createRequestInterceptor(onFulfilled?: (value: HttpClientRequestConfig) => HttpClientRequestConfig | Promise<HttpClientRequestConfig> | any, onRejected?: (error: any) => any): number;
/**
* remove a global request interceptor with requestInterceptor's id
*
* detail: https://github.com/axios/axios#interceptors
*
* @param {number} requestInterceptor
* @memberof HttpClient
*/
removeRequestInterceptor(requestInterceptor: number): void;
/**
* create a global response interceptor and return responseInterceptor's id
*
* detail: https://github.com/axios/axios#interceptors
*
* @param {((value: HttpClientResponse) => HttpClientResponse | Promise<HttpClientResponse>)} [onFulfilled]
* @param {(error: any) => any} [onRejected]
* @returns {number}
* @memberof HttpClient
*/
createResponseInterceptor(onFulfilled?: (value: HttpClientResponse) => HttpClientResponse | Promise<HttpClientResponse> | any, onRejected?: (error: any) => any): number;
/**
* remove a global response interceptor with responseInterceptor's id
*
* detail: https://github.com/axios/axios#interceptors
*
* @param {number} responseInterceptor
* @memberof HttpClient
*/
removeResponseInterceptor(responseInterceptor: number): void;
}