forked from wendux/fly
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
77 lines (66 loc) · 2.04 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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;