Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "Simplify pipe overload typings" (#65)

This reverts commit 071101e34c790a3ef9589eb78b814f151ee5ebbb.

authored by

Phil Plückthun and committed by
GitHub
1fee50d2 8e1fd9b0

+85 -81
+85 -81
src/helpers/pipe.ts
··· 1 1 import { sourceT as Source } from '../wonka_types.gen'; 2 2 3 + interface UnaryFn<T, R> { 4 + (source: T): R; 5 + } 6 + 3 7 /* pipe definitions for source + operators composition */ 4 8 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>; 6 10 7 11 function pipe<T, A, B>( 8 12 source: Source<T>, 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>> 11 15 ): Source<B>; 12 16 13 17 function pipe<T, A, B, C>( 14 18 source: Source<T>, 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>> 18 22 ): Source<C>; 19 23 20 24 function pipe<T, A, B, C, D>( 21 25 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 + 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>> 26 30 ): Source<D>; 27 31 28 32 function pipe<T, A, B, C, D, E>( 29 33 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> 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>> 35 39 ): Source<E>; 36 40 37 41 function pipe<T, A, B, C, D, E, F>( 38 42 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> 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>> 45 49 ): Source<F>; 46 50 47 51 function pipe<T, A, B, C, D, E, F, G>( 48 52 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> 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>> 56 60 ): Source<G>; 57 61 58 62 function pipe<T, A, B, C, D, E, F, G, H>( 59 63 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> 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>> 68 72 ): Source<H>; 69 73 70 74 /* pipe definitions for source + operators + consumer composition */ 71 75 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; 73 77 74 78 function pipe<T, A, R>( 75 79 source: Source<T>, 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> 78 82 ): R; 79 83 80 84 function pipe<T, A, B, R>( 81 85 source: Source<T>, 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> 85 89 ): R; 86 90 87 91 function pipe<T, A, B, C, R>( 88 92 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 + 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> 93 97 ): R; 94 98 95 99 function pipe<T, A, B, C, D, R>( 96 100 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 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> 102 106 ): R; 103 107 104 108 function pipe<T, A, B, C, D, E, R>( 105 109 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 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> 112 116 ): R; 113 117 114 118 function pipe<T, A, B, C, D, E, F, R>( 115 119 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 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> 123 127 ): R; 124 128 125 129 function pipe<T, A, B, C, D, E, F, G, R>( 126 130 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 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> 135 139 ): R; 136 140 137 141 function pipe<T, A, B, C, D, E, F, G, H, R>( 138 142 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 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> 148 152 ): R; 149 153 150 154 function pipe() {