All files / array/operator updateAt.ts

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

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 106x 9x 1x     4x 4x 4x    
export const updateAt = (index: number) => <T>(value: T) => (array: T[]) => {
  if (index < 0 || index >= array.length) {
    throw Error(`index: (${index}) out of range`);
  }
 
  const copy = Array.from(array);
  copy[index] = value;
  return copy;
};