All files / util once.ts

50% Statements 3/6
0% Branches 0/1
50% Functions 1/2
50% Lines 3/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 101x 1x 1x              
export function once<B>(fn: () => B): () => B {
  let result: [B] | [] = []
  return () => {
    Iif (!result.length) {
      result = [fn()]
    }
    return result[0]
  }
}