-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypes.js
More file actions
84 lines (77 loc) · 1.92 KB
/
types.js
File metadata and controls
84 lines (77 loc) · 1.92 KB
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
77
78
79
80
81
82
83
84
/* @flow */
export type Task$Types = 'after' | 'every' | 'defer' | 'job';
type Task$PromiseOption = {
promise(): Promise<Array<any>>,
};
export type Task$Handler = {|
get size(): number,
has(...ids: Array<any>): boolean,
after<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
delay: number,
fn?: F,
...args: A
): Task$Ref,
defer<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
fn?: F,
...args: A
): Task$Ref,
every<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
interval: number,
fn?: F,
...args: A
): Task$Ref,
everyNow<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
interval: number,
fn?: F,
...args: A
): Task$Ref,
everySequential<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
interval: number,
fn?: F,
...args: A
): Task$Ref,
everyNowSequential<ID: any, A: Array<any>, F: (...args: A) => any>(
id: ID,
interval: number,
fn?: F,
...args: A
): Task$Ref,
job<ID: any, A: Array<any>, F: (...args: A) => Task$Job>(
id: ID,
getJob: F,
...args: A
): Task$Ref,
cancel(...ids: Array<any>): Task$PromiseOption,
clear(): Task$PromiseOption,
|};
type Task$Promise$Every = AsyncGenerator<Task$Ref, Task$Ref, Task$Ref>;
type Task$Promise$Regular = Promise<Task$Ref>;
export type Task$RefMap = Map<any, [Task$Ref, () => void]>;
export type Task$Ref = {|
+id: any,
+type: Task$Types,
get result(): any,
get promise(): () => Task$Promise$Regular,
get promises(): () => Task$Promise$Every,
+status: {
resolving: boolean,
complete: boolean,
cancelled: boolean,
error: boolean,
},
cancel(): void,
resolve(value: any): void,
reject(reason: any): void,
task: Task$Handler,
|};
export type Task$Job = {|
start: (ref: Task$Ref) => any,
error?: (error: Error) => any,
cancelled?: (ref: Task$Ref) => any,
complete?: (ref: Task$Ref) => any,
|};