All files / helpers debounceHelper.ts

82.35% Statements 14/17
50% Branches 2/4
66.66% Functions 2/3
82.35% Lines 14/17

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 15 16 17 181x 4x 4x 5x 5x 5x 5x       5x 5x 5x 5x 5x 4x 4x  
export const debounceLeading = (func: any, wait: number = 300, immediate?: boolean) => {
  let timeout: any;
  const funcToReturn: any = function () {
    // this guy sucks, but works super well
    let context: any = this as any;
    let args = arguments;
    let later = function () {
      timeout = null;
      if (!immediate) func.apply(context, args);
    };
    let callNow = immediate && !timeout;
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
    if (callNow) func.apply(context, args);
  };
  return funcToReturn;
};