Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v4.0.0-rc.2 4.7 kB view raw
1import { sourceT as Source } from '../wonka_types.gen'; 2 3/* pipe definitions for source + operators composition */ 4 5function pipe<T, A>(source: Source<T>, op1: (source: Source<T>) => Source<A>): Source<A>; 6 7function pipe<T, A, B>( 8 source: Source<T>, 9 op1: (source: Source<T>) => Source<A>, 10 op2: (source: Source<A>) => Source<B> 11): Source<B>; 12 13function pipe<T, A, B, C>( 14 source: Source<T>, 15 op1: (source: Source<T>) => Source<A>, 16 op2: (source: Source<A>) => Source<B>, 17 op3: (source: Source<B>) => Source<C> 18): Source<C>; 19 20function pipe<T, A, B, C, D>( 21 source: Source<T>, 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): Source<D>; 27 28function pipe<T, A, B, C, D, E>( 29 source: Source<T>, 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> 35): Source<E>; 36 37function pipe<T, A, B, C, D, E, F>( 38 source: Source<T>, 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> 45): Source<F>; 46 47function pipe<T, A, B, C, D, E, F, G>( 48 source: Source<T>, 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> 56): Source<G>; 57 58function pipe<T, A, B, C, D, E, F, G, H>( 59 source: Source<T>, 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> 68): Source<H>; 69 70/* pipe definitions for source + operators + consumer composition */ 71 72function pipe<T, R>(source: Source<T>, consumer: (source: Source<T>) => R): R; 73 74function pipe<T, A, R>( 75 source: Source<T>, 76 op1: (source: Source<T>) => Source<A>, 77 consumer: (source: Source<A>) => R 78): R; 79 80function pipe<T, A, B, R>( 81 source: Source<T>, 82 op1: (source: Source<T>) => Source<A>, 83 op2: (source: Source<A>) => Source<B>, 84 consumer: (source: Source<B>) => R 85): R; 86 87function pipe<T, A, B, C, R>( 88 source: Source<T>, 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): R; 94 95function pipe<T, A, B, C, D, R>( 96 source: Source<T>, 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 102): R; 103 104function pipe<T, A, B, C, D, E, R>( 105 source: Source<T>, 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 112): R; 113 114function pipe<T, A, B, C, D, E, F, R>( 115 source: Source<T>, 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 123): R; 124 125function pipe<T, A, B, C, D, E, F, G, R>( 126 source: Source<T>, 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 135): R; 136 137function pipe<T, A, B, C, D, E, F, G, H, R>( 138 source: Source<T>, 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 148): R; 149 150function pipe() { 151 let x = arguments[0]; 152 for (let i = 1, l = arguments.length; i < l; i++) 153 x = arguments[i](x); 154 return x; 155} 156 157export { pipe };