···
import { sourceT as Source } from '../wonka_types.gen';
3
+
interface UnaryFn<T, R> {
/* pipe definitions for source + operators composition */
5
-
function pipe<T, A>(source: Source<T>, op1: (source: Source<T>) => Source<A>): Source<A>;
9
+
function pipe<T, A>(source: Source<T>, op1: UnaryFn<Source<T>, Source<A>>): Source<A>;
9
-
op1: (source: Source<T>) => Source<A>,
10
-
op2: (source: Source<A>) => Source<B>
13
+
op1: UnaryFn<Source<T>, Source<A>>,
14
+
op2: UnaryFn<Source<A>, Source<B>>
function pipe<T, A, B, C>(
15
-
op1: (source: Source<T>) => Source<A>,
16
-
op2: (source: Source<A>) => Source<B>,
17
-
op3: (source: Source<B>) => Source<C>
19
+
op1: UnaryFn<Source<T>, Source<A>>,
20
+
op2: UnaryFn<Source<A>, Source<B>>,
21
+
op3: UnaryFn<Source<B>, Source<C>>
function pipe<T, A, B, C, D>(
22
-
op1: (source: Source<T>) => Source<A>,
23
-
op2: (source: Source<A>) => Source<B>,
24
-
op3: (source: Source<B>) => Source<C>,
25
-
op4: (source: Source<C>) => Source<D>
26
+
op1: UnaryFn<Source<T>, Source<A>>,
27
+
op2: UnaryFn<Source<A>, Source<B>>,
28
+
op3: UnaryFn<Source<B>, Source<C>>,
29
+
op4: UnaryFn<Source<C>, Source<D>>
function pipe<T, A, B, C, D, E>(
30
-
op1: (source: Source<T>) => Source<A>,
31
-
op2: (source: Source<A>) => Source<B>,
32
-
op3: (source: Source<B>) => Source<C>,
33
-
op4: (source: Source<C>) => Source<D>,
34
-
op5: (source: Source<D>) => Source<E>
34
+
op1: UnaryFn<Source<T>, Source<A>>,
35
+
op2: UnaryFn<Source<A>, Source<B>>,
36
+
op3: UnaryFn<Source<B>, Source<C>>,
37
+
op4: UnaryFn<Source<C>, Source<D>>,
38
+
op5: UnaryFn<Source<D>, Source<E>>
function pipe<T, A, B, C, D, E, F>(
39
-
op1: (source: Source<T>) => Source<A>,
40
-
op2: (source: Source<A>) => Source<B>,
41
-
op3: (source: Source<B>) => Source<C>,
42
-
op4: (source: Source<C>) => Source<D>,
43
-
op5: (source: Source<D>) => Source<E>,
44
-
op6: (source: Source<E>) => Source<F>
43
+
op1: UnaryFn<Source<T>, Source<A>>,
44
+
op2: UnaryFn<Source<A>, Source<B>>,
45
+
op3: UnaryFn<Source<B>, Source<C>>,
46
+
op4: UnaryFn<Source<C>, Source<D>>,
47
+
op5: UnaryFn<Source<D>, Source<E>>,
48
+
op6: UnaryFn<Source<E>, Source<F>>
function pipe<T, A, B, C, D, E, F, G>(
49
-
op1: (source: Source<T>) => Source<A>,
50
-
op2: (source: Source<A>) => Source<B>,
51
-
op3: (source: Source<B>) => Source<C>,
52
-
op4: (source: Source<C>) => Source<D>,
53
-
op5: (source: Source<D>) => Source<E>,
54
-
op6: (source: Source<E>) => Source<F>,
55
-
op7: (source: Source<F>) => Source<G>
53
+
op1: UnaryFn<Source<T>, Source<A>>,
54
+
op2: UnaryFn<Source<A>, Source<B>>,
55
+
op3: UnaryFn<Source<B>, Source<C>>,
56
+
op4: UnaryFn<Source<C>, Source<D>>,
57
+
op5: UnaryFn<Source<D>, Source<E>>,
58
+
op6: UnaryFn<Source<E>, Source<F>>,
59
+
op7: UnaryFn<Source<F>, Source<G>>
function pipe<T, A, B, C, D, E, F, G, H>(
60
-
op1: (source: Source<T>) => Source<A>,
61
-
op2: (source: Source<A>) => Source<B>,
62
-
op3: (source: Source<B>) => Source<C>,
63
-
op4: (source: Source<C>) => Source<D>,
64
-
op5: (source: Source<D>) => Source<E>,
65
-
op6: (source: Source<E>) => Source<F>,
66
-
op7: (source: Source<F>) => Source<G>,
67
-
op8: (source: Source<G>) => Source<H>
64
+
op1: UnaryFn<Source<T>, Source<A>>,
65
+
op2: UnaryFn<Source<A>, Source<B>>,
66
+
op3: UnaryFn<Source<B>, Source<C>>,
67
+
op4: UnaryFn<Source<C>, Source<D>>,
68
+
op5: UnaryFn<Source<D>, Source<E>>,
69
+
op6: UnaryFn<Source<E>, Source<F>>,
70
+
op7: UnaryFn<Source<F>, Source<G>>,
71
+
op8: UnaryFn<Source<G>, Source<H>>
/* pipe definitions for source + operators + consumer composition */
72
-
function pipe<T, R>(source: Source<T>, consumer: (source: Source<T>) => R): R;
76
+
function pipe<T, R>(source: Source<T>, consumer: UnaryFn<Source<T>, R>): R;
76
-
op1: (source: Source<T>) => Source<A>,
77
-
consumer: (source: Source<A>) => R
80
+
op1: UnaryFn<Source<T>, Source<A>>,
81
+
consumer: UnaryFn<Source<A>, R>
function pipe<T, A, B, R>(
82
-
op1: (source: Source<T>) => Source<A>,
83
-
op2: (source: Source<A>) => Source<B>,
84
-
consumer: (source: Source<B>) => R
86
+
op1: UnaryFn<Source<T>, Source<A>>,
87
+
op2: UnaryFn<Source<A>, Source<B>>,
88
+
consumer: UnaryFn<Source<B>, R>
function pipe<T, A, B, C, R>(
89
-
op1: (source: Source<T>) => Source<A>,
90
-
op2: (source: Source<A>) => Source<B>,
91
-
op3: (source: Source<B>) => Source<C>,
92
-
consumer: (source: Source<C>) => R
93
+
op1: UnaryFn<Source<T>, Source<A>>,
94
+
op2: UnaryFn<Source<A>, Source<B>>,
95
+
op3: UnaryFn<Source<B>, Source<C>>,
96
+
consumer: UnaryFn<Source<C>, R>
function pipe<T, A, B, C, D, R>(
97
-
op1: (source: Source<T>) => Source<A>,
98
-
op2: (source: Source<A>) => Source<B>,
99
-
op3: (source: Source<B>) => Source<C>,
100
-
op4: (source: Source<C>) => Source<D>,
101
-
consumer: (source: Source<D>) => R
101
+
op1: UnaryFn<Source<T>, Source<A>>,
102
+
op2: UnaryFn<Source<A>, Source<B>>,
103
+
op3: UnaryFn<Source<B>, Source<C>>,
104
+
op4: UnaryFn<Source<C>, Source<D>>,
105
+
consumer: UnaryFn<Source<D>, R>
function pipe<T, A, B, C, D, E, R>(
106
-
op1: (source: Source<T>) => Source<A>,
107
-
op2: (source: Source<A>) => Source<B>,
108
-
op3: (source: Source<B>) => Source<C>,
109
-
op4: (source: Source<C>) => Source<D>,
110
-
op5: (source: Source<D>) => Source<E>,
111
-
consumer: (source: Source<E>) => R
110
+
op1: UnaryFn<Source<T>, Source<A>>,
111
+
op2: UnaryFn<Source<A>, Source<B>>,
112
+
op3: UnaryFn<Source<B>, Source<C>>,
113
+
op4: UnaryFn<Source<C>, Source<D>>,
114
+
op5: UnaryFn<Source<D>, Source<E>>,
115
+
consumer: UnaryFn<Source<E>, R>
function pipe<T, A, B, C, D, E, F, R>(
116
-
op1: (source: Source<T>) => Source<A>,
117
-
op2: (source: Source<A>) => Source<B>,
118
-
op3: (source: Source<B>) => Source<C>,
119
-
op4: (source: Source<C>) => Source<D>,
120
-
op5: (source: Source<D>) => Source<E>,
121
-
op6: (source: Source<E>) => Source<F>,
122
-
consumer: (source: Source<F>) => R
120
+
op1: UnaryFn<Source<T>, Source<A>>,
121
+
op2: UnaryFn<Source<A>, Source<B>>,
122
+
op3: UnaryFn<Source<B>, Source<C>>,
123
+
op4: UnaryFn<Source<C>, Source<D>>,
124
+
op5: UnaryFn<Source<D>, Source<E>>,
125
+
op6: UnaryFn<Source<E>, Source<F>>,
126
+
consumer: UnaryFn<Source<F>, R>
function pipe<T, A, B, C, D, E, F, G, R>(
127
-
op1: (source: Source<T>) => Source<A>,
128
-
op2: (source: Source<A>) => Source<B>,
129
-
op3: (source: Source<B>) => Source<C>,
130
-
op4: (source: Source<C>) => Source<D>,
131
-
op5: (source: Source<D>) => Source<E>,
132
-
op6: (source: Source<E>) => Source<F>,
133
-
op7: (source: Source<F>) => Source<G>,
134
-
consumer: (source: Source<G>) => R
131
+
op1: UnaryFn<Source<T>, Source<A>>,
132
+
op2: UnaryFn<Source<A>, Source<B>>,
133
+
op3: UnaryFn<Source<B>, Source<C>>,
134
+
op4: UnaryFn<Source<C>, Source<D>>,
135
+
op5: UnaryFn<Source<D>, Source<E>>,
136
+
op6: UnaryFn<Source<E>, Source<F>>,
137
+
op7: UnaryFn<Source<F>, Source<G>>,
138
+
consumer: UnaryFn<Source<G>, R>
function pipe<T, A, B, C, D, E, F, G, H, R>(
139
-
op1: (source: Source<T>) => Source<A>,
140
-
op2: (source: Source<A>) => Source<B>,
141
-
op3: (source: Source<B>) => Source<C>,
142
-
op4: (source: Source<C>) => Source<D>,
143
-
op5: (source: Source<D>) => Source<E>,
144
-
op6: (source: Source<E>) => Source<F>,
145
-
op7: (source: Source<F>) => Source<G>,
146
-
op8: (source: Source<G>) => Source<H>,
147
-
consumer: (source: Source<H>) => R
143
+
op1: UnaryFn<Source<T>, Source<A>>,
144
+
op2: UnaryFn<Source<A>, Source<B>>,
145
+
op3: UnaryFn<Source<B>, Source<C>>,
146
+
op4: UnaryFn<Source<C>, Source<D>>,
147
+
op5: UnaryFn<Source<D>, Source<E>>,
148
+
op6: UnaryFn<Source<E>, Source<F>>,
149
+
op7: UnaryFn<Source<F>, Source<G>>,
150
+
op8: UnaryFn<Source<G>, Source<H>>,
151
+
consumer: UnaryFn<Source<H>, R>