docs: function debounce(callback) {
      let timeout = null;
  
      return () => {
          if (timeout !== null) {
              return;
          }
  
          timeout = setTimeout(() => {
              timeout = null;
              callback();
          }, 0);
      }
  }