eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 706 B
JavaScript
import{detectProjectIdentity}from"#setup/project-resolution.js";function createVercelStatusTracker(e){let t=e.detectIdentity??detectProjectIdentity,n,r=0,i=!1,a,snapshot=()=>n===void 0?{}:{identity:n},emit=()=>{i||e.onChange(snapshot())},refreshIdentity=()=>{if(i)return;a?.abort();let o=new AbortController;a=o,r+=1;let s=r;(async()=>{let c;try{c=await t(e.appRoot,{signal:o.signal})}catch{return}finally{a===o&&(a=void 0)}i||s!==r||(n=c,emit())})()};return{refreshIdentity,applyEffect(e){if(!i)switch(e.kind){case`deployed`:emit(),refreshIdentity();return;case`refresh-identity`:refreshIdentity();return}},current:snapshot,dispose(){i||(i=!0,r+=1,a?.abort(),a=void 0)}}}export{createVercelStatusTracker};