UNPKG

eve

Version:

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

1 lines 772 B
import{isObject}from"#shared/guards.js";function toErrorMessage(t){return t instanceof Error?t.message:typeof t==`string`?t:t==null?String(t):isObject(t)?typeof t.message==`string`&&t.message.length>0?t.message:safeJsonStringify(t):String(t)}function toError(t){if(t instanceof Error)return t;let n=Error(toErrorMessage(t));return isObject(t)?(typeof t.name==`string`&&t.name.length>0&&(n.name=t.name),typeof t.stack==`string`&&t.stack.length>0&&(n.stack=t.stack),`cause`in t&&t.cause!==void 0&&t.cause!==t&&(n.cause=t.cause),n):n}function*walkCauseChain(t){let n=new Set,r=t;for(;isObject(r)&&!n.has(r);)n.add(r),yield r,r=r.cause}function safeJsonStringify(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}export{toError,toErrorMessage,walkCauseChain};