const debounce = (func, timeout = 2500) => {
if (typeof func !== "function") {
console.error(`func must be a valid function, ${typeof func} provided`)
return
}
let timer
return (...args) => {
clearTimeout(timer)
timer = setTimeout(() => {
func.apply(this, args)
}, timeout)
}
}