All files / array/operator collect.ts

100% Statements 7/7
100% Branches 2/2
100% Functions 4/4
100% Lines 4/4

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 121x       42x     15x 42x      
import {flatten} from './flatten';
import {UnaryFunction} from 'fnxt/fnxt-types';
 
function getArr<F>(e: Iterable<F>): F[] {
  return Array.isArray(e) ? e : [...e];
}
 
export const collect = <E, F>(fn: UnaryFunction<E, Iterable<F>>) => (array: E[]): F[] =>
  flatten(array.map(e => getArr(fn(e))));