78 lines
2.1 KiB
TypeScript
78 lines
2.1 KiB
TypeScript
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 global {
|
|
export const fly: Fly;
|
|
} |