@westacks/vortex
Version:
Server-based routing for SPAs
2 lines (1 loc) • 1.26 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./page-CvrPUcPo.cjs"),t=require("./form-BGYwcZf7.cjs"),p=require("./dom-oDkCkxSJ.cjs");async function g(n,e="#app"){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("Root element not found!");const o=JSON.parse(e.dataset?.page??"null");if(!o)throw new Error("Initial page data not defined!");s.page.set(o),t.createRouter();const i=await n(e,s.page,t.install,!!e.dataset?.ssr);return()=>{i instanceof Function&&i(),t.destroyRouter()}}function b(n,e={}){const{autoStart:o=!0,keepAlive:i=!1}=e;delete e.autoStart,delete e.keepAlive;let u,l=document.hidden,r=0,a;const c=()=>{l=document.hidden,r=0};function d(){document.addEventListener("visibilitychange",c),u=setInterval(()=>{if(i||!l||r!==0&&r%10===0)return r=0,a=new AbortController,t.axios.reload({...e,signal:a.signal});r++},n)}function f(){clearInterval(u),a?.abort(),document.removeEventListener("visibilitychange",c)}return o&&d(),{start:d,stop:f}}exports.page=s.page;Object.defineProperty(exports,"axios",{enumerable:!0,get:()=>t.axios});exports.useForm=t.useForm;exports.useRemember=t.useRemember;exports.link=p.link;exports.visible=p.visible;exports.createVortex=g;exports.usePoll=b;