UNPKG

eve

Version:

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

1 lines 1.1 kB
import{contextStorage}from"#context/container.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{ContextKey}from"#context/key.js";import{normalizeAuthorizationSpec}from"#runtime/connections/validate-authorization.js";const ConnectionAuthorizationResolversKey=new ContextKey(`eve.connectionAuthorizationResolvers`);async function resolveConnectionAuthorization(t,n){let r=t.authorization;if(r===void 0||typeof r!=`function`)return r;let i=contextStorage.getStore();if(i===void 0)return await resolveDynamicAuthorization(t,n);let a=getResolverCache(i),o=a.get(t);return o===void 0&&(o=resolveDynamicAuthorization(t,n),a.set(t,o)),await o}async function resolveDynamicAuthorization(e,n){let i=e.authorization;return typeof i==`function`?normalizeAuthorizationSpec(await i(n??buildCallbackContext()),`Connection "${e.connectionName}" auth resolver:`):i}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};