Allow One Function Call

Easy

Solution

export function once<T, R>(fn: (...args: T[]) => R): (...args: T[]) => R | undefined {
  let called = false;
  return (...args) => {
    if (called) {
      return;
    }
    called = true;
    return fn(...args);
  };
}