All files / src/utils debounce.ts

22.22% Statements 2/9
0% Branches 0/1
0% Functions 0/3
22.22% Lines 2/9

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 18 19          1x                         1x
// SPDX-License-Identifier: Apache-2.0
 
/**
 * Limit the execution of a function to once every N ms
 */
const debounce = <F extends (...args: any[]) => void>(func: F, delay: number) => {
    let timerActive = false;
    return (...args: any) => {
        Iif (!timerActive) {
            timerActive = true;
            func(...args);
            setTimeout(() => {
                timerActive = false;
            }, delay);
        }
    };
};
 
export default debounce;