| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
 | | import { identity } from './identity'; |  | import { UnaryFunction } from '../types'; |  |   |  | export function pipe(): typeof identity; |  | export function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>; |  | export function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>; |  | export function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>; |  | export function pipe<T, A, B, C, D>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D> |  | ): UnaryFunction<T, D>; |  | export function pipe<T, A, B, C, D, E>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E> |  | ): UnaryFunction<T, E>; |  | export function pipe<T, A, B, C, D, E, F>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E>, |  |   fn6: UnaryFunction<E, F> |  | ): UnaryFunction<T, F>; |  | export function pipe<T, A, B, C, D, E, F, G>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E>, |  |   fn6: UnaryFunction<E, F>, |  |   fn7: UnaryFunction<F, G> |  | ): UnaryFunction<T, G>; |  | export function pipe<T, A, B, C, D, E, F, G, H>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E>, |  |   fn6: UnaryFunction<E, F>, |  |   fn7: UnaryFunction<F, G>, |  |   fn8: UnaryFunction<G, H> |  | ): UnaryFunction<T, H>; |  | export function pipe<T, A, B, C, D, E, F, G, H, I>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E>, |  |   fn6: UnaryFunction<E, F>, |  |   fn7: UnaryFunction<F, G>, |  |   fn8: UnaryFunction<G, H>, |  |   fn9: UnaryFunction<H, I> |  | ): UnaryFunction<T, I>; |  | export function pipe<T, A, B, C, D, E, F, G, H, I>( |  |   fn1: UnaryFunction<T, A>, |  |   fn2: UnaryFunction<A, B>, |  |   fn3: UnaryFunction<B, C>, |  |   fn4: UnaryFunction<C, D>, |  |   fn5: UnaryFunction<D, E>, |  |   fn6: UnaryFunction<E, F>, |  |   fn7: UnaryFunction<F, G>, |  |   fn8: UnaryFunction<G, H>, |  |   fn9: UnaryFunction<H, I>, |  |   ...fns: UnaryFunction<any, any>[] |  | ): UnaryFunction<T, unknown>; |  |   |  | /** |  |  * pipe() can be called on one or more functions, each of which can take one argument ("UnaryFunction") |  |  * and uses it to return a value. |  |  * It returns a function that takes one argument, passes it to the first UnaryFunction, and then |  |  * passes the result to the next one, passes that result to the next one, and so on.   |  |  */ |  | export function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> { |  |   return pipeFromArray(fns); |  | } |  |   |  | /** @internal */ |  | export function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> { |  |   if (fns.length === 0) { |  |     return identity as UnaryFunction<any, any>; |  |   } |  |   |  |   if (fns.length === 1) { |  |     return fns[0]; |  |   } |  |   |  |   return function piped(input: T): R { |  |     return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any); |  |   }; |  | } | 
 |