const debounceEvent = (fn, wait = 500, time) => (...args) => clearTimeout(time, time = setTimeout(() => fn(...args), wait)) /* Example: document.querySelector('input').addEventListener('keyup', debounceEvent((event) => console.log(event))) */