eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.1 kB
JavaScript
import{contextStorage}from"#context/container.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{ContextKey}from"#context/key.js";import{normalizeAuthorizationSpec}from"#shared/validate-authorization.js";const ConnectionAuthorizationResolversKey=new ContextKey(`eve.connectionAuthorizationResolvers`);async function resolveConnectionAuthorization(e,t){let n=e.authorization;if(n===void 0||typeof n!=`function`)return n;let r=contextStorage.getStore();if(r===void 0)return await resolveDynamicAuthorization(e,t);let i=getResolverCache(r),a=i.get(e);return a===void 0&&(a=resolveDynamicAuthorization(e,t),i.set(e,a)),await a}async function resolveDynamicAuthorization(e,t){let n=e.authorization;if(typeof n!=`function`)return n;let r=await n(t??buildCallbackContext());return normalizeAuthorizationSpec(r,`Connection "${e.connectionName}" auth resolver:`)}function getResolverCache(e){let t=e.get(ConnectionAuthorizationResolversKey);if(t!==void 0)return t;let n=new Map;return e.setVirtualContext(ConnectionAuthorizationResolversKey,n),n}export{resolveConnectionAuthorization};