@mobily/ts-belt
Version:
🔧 Fast, modern, and practical utility library for FP in TypeScript.
75 lines (73 loc) • 1.67 kB
Flow
// @flow
/**
* Performs left-to-right function composition (the first argument must be a value).
*/
declare export function pipe<A, B>(value: A, fn1: (arg: A) => B): B;
declare export function pipe<A, B, C>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C
): C;
declare export function pipe<A, B, C, D>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D
): D;
declare export function pipe<A, B, C, D, E>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E
): E;
declare export function pipe<A, B, C, D, E, F>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E,
fn5: (arg: E) => F
): F;
declare export function pipe<A, B, C, D, E, F, G>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E,
fn5: (arg: E) => F,
fn6: (arg: F) => G
): G;
declare export function pipe<A, B, C, D, E, F, G, H>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E,
fn5: (arg: E) => F,
fn6: (arg: F) => G,
fn7: (arg: G) => H
): H;
declare export function pipe<A, B, C, D, E, F, G, H, I>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E,
fn5: (arg: E) => F,
fn6: (arg: F) => G,
fn7: (arg: G) => H,
fn8: (arg: H) => I
): I;
declare export function pipe<A, B, C, D, E, F, G, H, I, J>(
value: A,
fn1: (arg: A) => B,
fn2: (arg: B) => C,
fn3: (arg: C) => D,
fn4: (arg: D) => E,
fn5: (arg: E) => F,
fn6: (arg: F) => G,
fn7: (arg: G) => H,
fn8: (arg: H) => I,
fn9: (arg: I) => J
): J;