packages feed

kitchen-sink-0.1.0.0: scaffolding/js/autoreload.js

(function(){
  const currentURLParams = new URLSearchParams(window.location.search);
  let serverId = currentURLParams.get('server-id');
  const go = (n) => () => {
    const m = n < 5 ? 1+n : 5;
    const retry = () => setTimeout(go(m), n*1000);
    const url = new URL(document.location.origin + '/dev/watch');
    let params = [['pathname', document.location.pathname]];
    if ((serverId ?? '') !== '') {
      params.push(['server-id', serverId]);
    }
    url.search = new URLSearchParams(params).toString();
      console.log(`fetching ${url}`);
    fetch(url)
    .then(response => response.json())
    .then(data => {
      console.log("got response");
      serverId = data[0];
      if (data[1] === "Respawned") {
        const params = new URLSearchParams();
        params.set('server-id', serverId);
        window.location.search = params;
      }
      if (data[1] === "Reloaded") {
        location.reload();
      }
      if (data[1] === "Disappeared") {
        retry();
      }
    })
    .catch(error => {
      console.error('Error:', error);
      retry();
    })
  };
  go(0)();
})();