All files / array/operator choose.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 2/2
100% Lines 9/9

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 13 14 151x     1x 3x 6x 6x 4x 4x 2x     2x    
import {Chooser, isSome} from 'fnxt/option';
 
 
export const choose = <E, F>(fn: Chooser<E, F>) =>
  (array: Array<E>): Array<F> => {
    const list = [];
    for (const item of array) {
      const option = fn(item);
      if (isSome(option)) {
        list.push(option.value);
      }
    }
    return list;
  };