UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 791 B
import{detectProjectIdentity}from"#setup/project-resolution.js";function createVercelStatusTracker(t){let n=t.detectIdentity??detectProjectIdentity,r,i=!1,a=0,o=!1,s,snapshot=()=>{let e={pendingDeploy:i};return r!==void 0&&(e.identity=r),e},emit=()=>{o||t.onChange(snapshot())},refreshIdentity=()=>{if(o)return;s?.abort();let e=new AbortController;s=e,a+=1;let i=a;(async()=>{let c;try{c=await n(t.appRoot,{signal:e.signal})}catch{return}finally{s===e&&(s=void 0)}o||i!==a||(r=c,emit())})()};return{refreshIdentity,applyEffect(e){if(!o)switch(e.kind){case`channels-added`:i=!0,emit();return;case`deployed`:i=!1,emit(),refreshIdentity();return;case`refresh-identity`:refreshIdentity();return}},current:snapshot,dispose(){o||(o=!0,a+=1,s?.abort(),s=void 0)}}}export{createVercelStatusTracker};