pipe

Compose functions left-to-right for functional pipelines.

#fp #functional #composition #utility
export const pipe =
<T>(...fns: Array<(value: T) => T>) =>
(initial: T): T =>
fns.reduce((value, fn) => fn(value), initial);
// Usage
const addOne = (x: number) => x + 1;
const double = (x: number) => x * 2;
const square = (x: number) => x * x;
const transform = pipe(addOne, double, square);
transform(2); // ((2 + 1) * 2)² = 36

Share this snippet

Comments