UNPKG

@indiv/common

Version:

一个 web mvvm 库。A web mvvm library.

159 lines (158 loc) 6.46 kB
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; }