UNPKG

eve

Version:

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

1 lines 1.13 kB
async function claimHookOwnership(e){let t;try{t=await e.getConflict()}catch(t){return await disposeAndThrow(e,normalizeHookClaimError(t,e.token))}if(t!==null)return await disposeAndThrow(e,createHookConflictError(e.token,t.runId))}async function closeHookIterator(e){typeof e.return==`function`&&await e.return(void 0)}async function disposeHook(e){let t=e.dispose;if(typeof t==`function`){await t.call(e);return}let n=e[Symbol.dispose];typeof n==`function`&&await n.call(e)}async function disposeAndThrow(e,t){try{await disposeHook(e)}catch{}throw t}function normalizeHookClaimError(e,t){return isHookConflictError(e)?createHookConflictError(typeof e.token==`string`?e.token:t,typeof e.conflictingRunId==`string`?e.conflictingRunId:void 0):e}function isHookConflictError(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`HookConflictError`}function createHookConflictError(e,t){let n=t===void 0?``:` (run "${t}")`;return Object.assign(Error(`Hook token "${e}" is already in use${n}`),{conflictingRunId:t,name:`HookConflictError`,token:e})}export{claimHookOwnership,closeHookIterator,disposeHook,isHookConflictError};