1 |
|
2 | export type Task<ValueType, ReturnType> = (
|
3 | previousValue: ValueType
|
4 | ) => ReturnType | PromiseLike<ReturnType>;
|
5 |
|
6 | export type InitialTask<ReturnType> = () => ReturnType | PromiseLike<ReturnType>;
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | export default function pWaterfall<ReturnType>(
|
29 | tasks: readonly [
|
30 | InitialTask<ReturnType>
|
31 | ]
|
32 | ): Promise<ReturnType>;
|
33 | export default function pWaterfall<ValueType1, ReturnType>(
|
34 | tasks: readonly [
|
35 | InitialTask<ValueType1>,
|
36 | Task<ValueType1, ReturnType>
|
37 | ]
|
38 | ): Promise<ReturnType>;
|
39 | export default function pWaterfall<ValueType1, ValueType2, ReturnType>(
|
40 | tasks: readonly [
|
41 | InitialTask<ValueType1>,
|
42 | Task<ValueType1, ValueType2>,
|
43 | Task<ValueType2, ReturnType>
|
44 | ]
|
45 | ): Promise<ReturnType>;
|
46 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ReturnType>(
|
47 | tasks: readonly [
|
48 | InitialTask<ValueType1>,
|
49 | Task<ValueType1, ValueType2>,
|
50 | Task<ValueType2, ValueType3>,
|
51 | Task<ValueType3, ReturnType>
|
52 | ]
|
53 | ): Promise<ReturnType>;
|
54 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ValueType4, ReturnType>(
|
55 | tasks: readonly [
|
56 | InitialTask<ValueType1>,
|
57 | Task<ValueType1, ValueType2>,
|
58 | Task<ValueType2, ValueType3>,
|
59 | Task<ValueType3, ValueType4>,
|
60 | Task<ValueType4, ReturnType>
|
61 | ]
|
62 | ): Promise<ReturnType>;
|
63 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ValueType4, ValueType5, ReturnType>(
|
64 | tasks: readonly [
|
65 | InitialTask<ValueType1>,
|
66 | Task<ValueType1, ValueType2>,
|
67 | Task<ValueType2, ValueType3>,
|
68 | Task<ValueType3, ValueType4>,
|
69 | Task<ValueType4, ValueType5>,
|
70 | Task<ValueType5, ReturnType>
|
71 | ]
|
72 | ): Promise<ReturnType>;
|
73 | export default function pWaterfall<
|
74 | ValueType1,
|
75 | ValueType2,
|
76 | ValueType3,
|
77 | ValueType4,
|
78 | ValueType5,
|
79 | ValueType6,
|
80 | ReturnType
|
81 | >(
|
82 | tasks: readonly [
|
83 | InitialTask<ValueType1>,
|
84 | Task<ValueType1, ValueType2>,
|
85 | Task<ValueType2, ValueType3>,
|
86 | Task<ValueType3, ValueType4>,
|
87 | Task<ValueType4, ValueType5>,
|
88 | Task<ValueType5, ValueType6>,
|
89 | Task<ValueType6, ReturnType>
|
90 | ]
|
91 | ): Promise<ReturnType>;
|
92 | export default function pWaterfall<
|
93 | ValueType1,
|
94 | ValueType2,
|
95 | ValueType3,
|
96 | ValueType4,
|
97 | ValueType5,
|
98 | ValueType6,
|
99 | ValueType7,
|
100 | ReturnType
|
101 | >(
|
102 | tasks: readonly [
|
103 | InitialTask<ValueType1>,
|
104 | Task<ValueType1, ValueType2>,
|
105 | Task<ValueType2, ValueType3>,
|
106 | Task<ValueType3, ValueType4>,
|
107 | Task<ValueType4, ValueType5>,
|
108 | Task<ValueType5, ValueType6>,
|
109 | Task<ValueType6, ValueType7>,
|
110 | Task<ValueType7, ReturnType>
|
111 | ]
|
112 | ): Promise<ReturnType>;
|
113 | export default function pWaterfall<ValueType1, ReturnType>(
|
114 | tasks: readonly [
|
115 | Task<ValueType1, ReturnType>
|
116 | ],
|
117 | initialValue: ValueType1
|
118 | ): Promise<ReturnType>;
|
119 | export default function pWaterfall<ValueType1, ValueType2, ReturnType>(
|
120 | tasks: readonly [
|
121 | Task<ValueType1, ValueType2>,
|
122 | Task<ValueType2, ReturnType>
|
123 | ],
|
124 | initialValue: ValueType1
|
125 | ): Promise<ReturnType>;
|
126 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ReturnType>(
|
127 | tasks: readonly [
|
128 | Task<ValueType1, ValueType2>,
|
129 | Task<ValueType2, ValueType3>,
|
130 | Task<ValueType3, ReturnType>
|
131 | ],
|
132 | initialValue: ValueType1
|
133 | ): Promise<ReturnType>;
|
134 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ValueType4, ReturnType>(
|
135 | tasks: readonly [
|
136 | Task<ValueType1, ValueType2>,
|
137 | Task<ValueType2, ValueType3>,
|
138 | Task<ValueType3, ValueType4>,
|
139 | Task<ValueType4, ReturnType>
|
140 | ],
|
141 | initialValue: ValueType1
|
142 | ): Promise<ReturnType>;
|
143 | export default function pWaterfall<ValueType1, ValueType2, ValueType3, ValueType4, ValueType5, ReturnType>(
|
144 | tasks: readonly [
|
145 | Task<ValueType1, ValueType2>,
|
146 | Task<ValueType2, ValueType3>,
|
147 | Task<ValueType3, ValueType4>,
|
148 | Task<ValueType4, ValueType5>,
|
149 | Task<ValueType5, ReturnType>
|
150 | ],
|
151 | initialValue: ValueType1
|
152 | ): Promise<ReturnType>;
|
153 | export default function pWaterfall<
|
154 | ValueType1,
|
155 | ValueType2,
|
156 | ValueType3,
|
157 | ValueType4,
|
158 | ValueType5,
|
159 | ValueType6,
|
160 | ReturnType
|
161 | >(
|
162 | tasks: readonly [
|
163 | Task<ValueType1, ValueType2>,
|
164 | Task<ValueType2, ValueType3>,
|
165 | Task<ValueType3, ValueType4>,
|
166 | Task<ValueType4, ValueType5>,
|
167 | Task<ValueType5, ValueType6>,
|
168 | Task<ValueType6, ReturnType>
|
169 | ],
|
170 | initialValue: ValueType1
|
171 | ): Promise<ReturnType>;
|
172 | export default function pWaterfall<
|
173 | ValueType1,
|
174 | ValueType2,
|
175 | ValueType3,
|
176 | ValueType4,
|
177 | ValueType5,
|
178 | ValueType6,
|
179 | ValueType7,
|
180 | ReturnType
|
181 | >(
|
182 | tasks: readonly [
|
183 | Task<ValueType1, ValueType2>,
|
184 | Task<ValueType2, ValueType3>,
|
185 | Task<ValueType3, ValueType4>,
|
186 | Task<ValueType4, ValueType5>,
|
187 | Task<ValueType5, ValueType6>,
|
188 | Task<ValueType6, ValueType7>,
|
189 | Task<ValueType7, ReturnType>
|
190 | ],
|
191 | initialValue: ValueType1
|
192 | ): Promise<ReturnType>;
|
193 | export default function pWaterfall<
|
194 | ValueType1,
|
195 | ValueType2,
|
196 | ValueType3,
|
197 | ValueType4,
|
198 | ValueType5,
|
199 | ValueType6,
|
200 | ValueType7,
|
201 | ValueType8,
|
202 | ReturnType
|
203 | >(
|
204 | tasks: readonly [
|
205 | Task<ValueType1, ValueType2>,
|
206 | Task<ValueType2, ValueType3>,
|
207 | Task<ValueType3, ValueType4>,
|
208 | Task<ValueType4, ValueType5>,
|
209 | Task<ValueType5, ValueType6>,
|
210 | Task<ValueType6, ValueType7>,
|
211 | Task<ValueType7, ValueType8>,
|
212 | Task<ValueType8, ReturnType>
|
213 | ],
|
214 | initialValue: ValueType1
|
215 | ): Promise<ReturnType>;
|
216 | export default function pWaterfall(
|
217 | tasks: Iterable<Task<unknown, unknown>>,
|
218 | initialValue?: unknown
|
219 | ): Promise<unknown>;
|