chain

function
function chain<
  T0,
  T1,
  T2,
  T3,
  T4,
  T5,
  T6,
  T7,
  T8,
  T9,
  T10,
  T11,
  T12,
  T13,
  T14,
  T15,
  R
>(
  initial: T0,
  fn0: UnaryFunction<NoInfer<T0>, T1>,
  fn1: UnaryFunction<NoInfer<T1>, T2>,
  fn2: UnaryFunction<NoInfer<T2>, T3>,
  fn3: UnaryFunction<NoInfer<T3>, T4>,
  fn4: UnaryFunction<NoInfer<T4>, T5>,
  fn5: UnaryFunction<NoInfer<T5>, T6>,
  fn6: UnaryFunction<NoInfer<T6>, T7>,
  fn7: UnaryFunction<NoInfer<T7>, T8>,
  fn8: UnaryFunction<NoInfer<T8>, T9>,
  fn9: UnaryFunction<NoInfer<T9>, T10>,
  fn10: UnaryFunction<T10, T11>,
  fn11: UnaryFunction<T11, T12>,
  fn12: UnaryFunction<T12, T13>,
  fn13: UnaryFunction<T13, T14>,
  fn14: UnaryFunction<T14, T15>,
  fn15: UnaryFunction<T15, R>
): R;

Applies a series of functions to an initial value, passing the result of each function to the next.

Used to convert code that looks like:

const a = addB(addC({ a: 'a' }));

to:

const a = chain({ a: 'a' }, addB, addC);

See composable-options for an example of how this can be used.

Parameters

NameTypeDescription
initialT0Initial value to pass through the chain
fn0UnaryFunction<NoInfer<T0>, T1>—
fn1UnaryFunction<NoInfer<T1>, T2>—
fn2UnaryFunction<NoInfer<T2>, T3>—
fn3UnaryFunction<NoInfer<T3>, T4>—
fn4UnaryFunction<NoInfer<T4>, T5>—
fn5UnaryFunction<NoInfer<T5>, T6>—
fn6UnaryFunction<NoInfer<T6>, T7>—
fn7UnaryFunction<NoInfer<T7>, T8>—
fn8UnaryFunction<NoInfer<T8>, T9>—
fn9UnaryFunction<NoInfer<T9>, T10>—
fn10UnaryFunction<T10, T11>—
fn11UnaryFunction<T11, T12>—
fn12UnaryFunction<T12, T13>—
fn13UnaryFunction<T13, T14>—
fn14UnaryFunction<T14, T15>—
fn15UnaryFunction<T15, R>—

Returns

R

Type Parameters

  • T0
  • T1
  • T2
  • T3
  • T4
  • T5
  • T6
  • T7
  • T8
  • T9
  • T10
  • T11
  • T12
  • T13
  • T14
  • T15
  • R