All files / utils is-array-of-primitives.ts

100% Statements 8/8
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 13 14 155x     49x 49x   49x 39x     10x 28x      
const simpleTypes = ["string", "number", "boolean"];
 
export function isArrayOfPrimitives(arr: unknown[]): arr is string[] {
  const firstNotNullItem = arr.find((item) => item !== null);
  const firstNotNullItemType = typeof firstNotNullItem;
 
  if (!simpleTypes.includes(firstNotNullItemType)) {
    return false;
  }
 
  return arr.every(
    (item) => item === null || typeof item === firstNotNullItemType,
  );
}