Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 1x 42x | import {UnaryFunction} from '../fnxt-types'; type Fn<E, R> = UnaryFunction<E, R>; export function pipe<A>(): Fn<A, A>; export function pipe<A, B>(a: Fn<A, B>): Fn<A, B>; export function pipe<A, B, C>(a: Fn<A, B>, b: Fn<B, C>): Fn<A, C>; export function pipe<A, B, C, D>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>,): Fn<A, D>; export function pipe<A, B, C, D, E>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>): Fn<A, E>; export function pipe<A, B, C, D, E, F>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>, e: Fn<E, F>): Fn<A, F>; export function pipe<A, B, C, D, E, F, G>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>, e: Fn<E, F>, f: Fn<F, G>): Fn<A, G>; export function pipe<A, B, C, D, E, F, G, H>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>, e: Fn<E, F>, f: Fn<F, G>, g: Fn<G, H>): Fn<A, H>; export function pipe<A, B, C, D, E, F, G, H, I>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>, e: Fn<E, F>, f: Fn<F, G>, g: Fn<G, H>, h: Fn<H, I>): Fn<A, I>; export function pipe<A, B, C, D, E, F, G, H, I>(a: Fn<A, B>, b: Fn<B, C>, c: Fn<C, D>, d: Fn<D, E>, e: Fn<E, F>, f: Fn<F, G>, g: Fn<G, H>, h: Fn<H, I>,): Fn<A, I>; export function pipe(...fns: UnaryFunction<unknown, unknown>[]): Fn<unknown, unknown> { return (v) => fns.reduce((val, fn) => fn(val), v); } |