All files / src/utils pipe.ts

1 2 3 4 5 6 7 8 9 10 11              53x 34x 17x  
/**
 * Pipe
 * Compose other transformers to run linearily
 * pipe(min(20), max(40))
 * @param  {...functions} transformers
 * @return {function}
 */
const combineFunctions = (a: Function, b: Function) => (v: any) => b(a(v));
export const pipe = (...transformers: Function[]) =>
  transformers.reduce(combineFunctions);