Mirror: 馃帺 A tiny but capable push & pull stream library for TypeScript and Flow
at v1.4.4 4.5 kB view raw
1import { Source } from './wonka_types'; 2 3interface UnaryFn<T, R> { (source: T): R; } 4 5/* pipe definitions for source + operators composition */ 6 7export function pipe<T, A>( 8 source: Source<T>, 9 op1: UnaryFn<Source<T>, Source<A>> 10): Source<A>; 11 12export function pipe<T, A, B>( 13 source: Source<T>, 14 op1: UnaryFn<Source<T>, Source<A>>, 15 op2: UnaryFn<Source<A>, Source<B>> 16): Source<B>; 17 18export function pipe<T, A, B, C>( 19 source: Source<T>, 20 op1: UnaryFn<Source<T>, Source<A>>, 21 op2: UnaryFn<Source<A>, Source<B>>, 22 op3: UnaryFn<Source<B>, Source<C>> 23): Source<C>; 24 25export function pipe<T, A, B, C, D>( 26 source: Source<T>, 27 op1: UnaryFn<Source<T>, Source<A>>, 28 op2: UnaryFn<Source<A>, Source<B>>, 29 op3: UnaryFn<Source<B>, Source<C>>, 30 op4: UnaryFn<Source<C>, Source<D>> 31): Source<D>; 32 33export function pipe<T, A, B, C, D, E>( 34 source: Source<T>, 35 op1: UnaryFn<Source<T>, Source<A>>, 36 op2: UnaryFn<Source<A>, Source<B>>, 37 op3: UnaryFn<Source<B>, Source<C>>, 38 op4: UnaryFn<Source<C>, Source<D>>, 39 op5: UnaryFn<Source<D>, Source<E>> 40): Source<E>; 41 42export function pipe<T, A, B, C, D, E, F>( 43 source: Source<T>, 44 op1: UnaryFn<Source<T>, Source<A>>, 45 op2: UnaryFn<Source<A>, Source<B>>, 46 op3: UnaryFn<Source<B>, Source<C>>, 47 op4: UnaryFn<Source<C>, Source<D>>, 48 op5: UnaryFn<Source<D>, Source<E>>, 49 op6: UnaryFn<Source<E>, Source<F>> 50): Source<F>; 51 52export function pipe<T, A, B, C, D, E, F, G>( 53 source: Source<T>, 54 op1: UnaryFn<Source<T>, Source<A>>, 55 op2: UnaryFn<Source<A>, Source<B>>, 56 op3: UnaryFn<Source<B>, Source<C>>, 57 op4: UnaryFn<Source<C>, Source<D>>, 58 op5: UnaryFn<Source<D>, Source<E>>, 59 op6: UnaryFn<Source<E>, Source<F>>, 60 op7: UnaryFn<Source<F>, Source<G>> 61): Source<G>; 62 63export function pipe<T, A, B, C, D, E, F, G, H>( 64 source: Source<T>, 65 op1: UnaryFn<Source<T>, Source<A>>, 66 op2: UnaryFn<Source<A>, Source<B>>, 67 op3: UnaryFn<Source<B>, Source<C>>, 68 op4: UnaryFn<Source<C>, Source<D>>, 69 op5: UnaryFn<Source<D>, Source<E>>, 70 op6: UnaryFn<Source<E>, Source<F>>, 71 op7: UnaryFn<Source<F>, Source<G>>, 72 op8: UnaryFn<Source<G>, Source<H>> 73): Source<H>; 74 75/* pipe definitions for source + operators + consumer composition */ 76 77export function pipe<T, R>( 78 source: Source<T>, 79 consumer: UnaryFn<Source<T>, R> 80): R; 81 82export function pipe<T, A, R>( 83 source: Source<T>, 84 op1: UnaryFn<Source<T>, Source<A>>, 85 consumer: UnaryFn<Source<A>, R> 86): R; 87 88export function pipe<T, A, B, R>( 89 source: Source<T>, 90 op1: UnaryFn<Source<T>, Source<A>>, 91 op2: UnaryFn<Source<A>, Source<B>>, 92 consumer: UnaryFn<Source<B>, R> 93): R; 94 95export function pipe<T, A, B, C, R>( 96 source: Source<T>, 97 op1: UnaryFn<Source<T>, Source<A>>, 98 op2: UnaryFn<Source<A>, Source<B>>, 99 op3: UnaryFn<Source<B>, Source<C>>, 100 consumer: UnaryFn<Source<C>, R> 101): R; 102 103export function pipe<T, A, B, C, D, R>( 104 source: Source<T>, 105 op1: UnaryFn<Source<T>, Source<A>>, 106 op2: UnaryFn<Source<A>, Source<B>>, 107 op3: UnaryFn<Source<B>, Source<C>>, 108 op4: UnaryFn<Source<C>, Source<D>>, 109 consumer: UnaryFn<Source<D>, R> 110): R; 111 112export function pipe<T, A, B, C, D, E, R>( 113 source: Source<T>, 114 op1: UnaryFn<Source<T>, Source<A>>, 115 op2: UnaryFn<Source<A>, Source<B>>, 116 op3: UnaryFn<Source<B>, Source<C>>, 117 op4: UnaryFn<Source<C>, Source<D>>, 118 op5: UnaryFn<Source<D>, Source<E>>, 119 consumer: UnaryFn<Source<E>, R> 120): R; 121 122export function pipe<T, A, B, C, D, E, F, R>( 123 source: Source<T>, 124 op1: UnaryFn<Source<T>, Source<A>>, 125 op2: UnaryFn<Source<A>, Source<B>>, 126 op3: UnaryFn<Source<B>, Source<C>>, 127 op4: UnaryFn<Source<C>, Source<D>>, 128 op5: UnaryFn<Source<D>, Source<E>>, 129 op6: UnaryFn<Source<E>, Source<F>>, 130 consumer: UnaryFn<Source<F>, R> 131): R; 132 133export function pipe<T, A, B, C, D, E, F, G, R>( 134 source: Source<T>, 135 op1: UnaryFn<Source<T>, Source<A>>, 136 op2: UnaryFn<Source<A>, Source<B>>, 137 op3: UnaryFn<Source<B>, Source<C>>, 138 op4: UnaryFn<Source<C>, Source<D>>, 139 op5: UnaryFn<Source<D>, Source<E>>, 140 op6: UnaryFn<Source<E>, Source<F>>, 141 op7: UnaryFn<Source<F>, Source<G>>, 142 consumer: UnaryFn<Source<G>, R> 143): R; 144 145export function pipe<T, A, B, C, D, E, F, G, H, R>( 146 source: Source<T>, 147 op1: UnaryFn<Source<T>, Source<A>>, 148 op2: UnaryFn<Source<A>, Source<B>>, 149 op3: UnaryFn<Source<B>, Source<C>>, 150 op4: UnaryFn<Source<C>, Source<D>>, 151 op5: UnaryFn<Source<D>, Source<E>>, 152 op6: UnaryFn<Source<E>, Source<F>>, 153 op7: UnaryFn<Source<F>, Source<G>>, 154 op8: UnaryFn<Source<G>, Source<H>>, 155 consumer: UnaryFn<Source<H>, R> 156): R;