UNPKG

flyio

Version:

Lightweigh Promise based HTTP client for the browser and node.js

78 lines (66 loc) 2.09 kB
export interface FlyRequestConfig extends Object { url?: string; method?: string; baseURL?: string; headers?: any; body?: any; timeout?: number; withCredentials?: boolean; parseJson?: boolean; responseType?: string; } export interface FlyError { status: number; message: string; engine: XMLHttpRequest; request?: FlyRequestConfig; response?: FlyErrResponse; } export interface FlyResponse<T = any> { data: T; request: FlyRequestConfig; engine: XMLHttpRequest; headers: Object; } export interface FlyErrResponse { data: any; headers: Object; status: number; statusText: string; } export interface FlyPromise<T = any> extends Promise<FlyResponse<T>> { } export interface FlyRequestInterceptor<V> { use(onSend?: (request: V) => any): void; lock(): void; unlock(): void; clear(): void; } export interface FlyResponseInterceptor<V> { use(onSucceed?: (response: V) => any, onError?: (err: Error) => any): void; lock(): void; unlock(): void; clear(): void; } export interface Fly { config: FlyRequestConfig; interceptors: { request: FlyRequestInterceptor<FlyRequestConfig>; response:FlyResponseInterceptor<FlyResponse>; }; engine:any; request<T = any>(url: string, data?: any, config?: FlyRequestConfig): FlyPromise<T>; get<T = any>(url: string, data?:any, config?: FlyRequestConfig): FlyPromise<T>; delete(url: string, data?:any, config?: FlyRequestConfig): FlyPromise; head(url: string,data?:any, config?: FlyRequestConfig): FlyPromise; post<T = any>(url: string, data?: any, config?: FlyRequestConfig): FlyPromise<T>; put<T = any>(url: string, data?: any, config?: FlyRequestConfig): FlyPromise<T>; patch<T = any>(url: string, data?: any, config?: FlyRequestConfig): FlyPromise<T>; all<T>(values: (T | Promise<T>)[]): Promise<T[]>; spread<T, R>(callback: (...args: T[]) => R): (array: T[]) => R; lock(): void; unlock(): void; clear(): void; } declare const fly:Fly; export default fly;