All files / src/utils compose.ts

100% Statements 9/9
100% Branches 4/4
100% Functions 3/3
100% Lines 7/7

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 133x 3x 39x 9x     30x 20x     13x    
import { returnSelf } from "mux-lib";
export function compose(...funcs) {
  if (funcs.length === 0) {
    return returnSelf;
  }
 
  if (funcs.length === 1) {
    return funcs[0];
  }
 
  return funcs.reduce((a, b) => (...args) => b(a(...args)));
}