UNPKG

eve

Version:

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

1 lines 1.69 kB
import{loadProgrammaticModuleNamespace,memoizeModuleNamespaceFactories}from"#compiler/source-graph.js";import{packageStateNamespace}from"#discover/extensions.js";import{loadAuthoredModuleNamespace}from"#internal/authored-module-loader.js";function createCompiledBindingNamespaceLoader(e){if(e.bindings===void 0&&e.resolveBinding===void 0)throw Error(`Compiled binding namespace loader requires a binding source.`);let t=new Map,load=(n,r=new Set)=>{if(r.has(n))throw Error(`Compiled binding dependency cycle includes "${n}".`);let i=t.get(n);if(i!==void 0)return i;let a=e.resolveBinding?.(n)??e.bindings?.[n];if(a===void 0)throw Error(`Compiled binding dependency "${n}" is missing.`);e.onLoad?.(n);let o=new Set(r).add(n),s=loadCompiledBindingNamespace({binding:a,loadDependency:e=>load(e,o),registries:e.registries}).then(memoizeModuleNamespaceFactories);return t.set(n,s),s};return load}async function loadCompiledBindingNamespace(e){if(e.binding.backing.kind===`filesystem`)return await loadAuthoredModuleNamespace(e.binding.backing.sourcePath,{externalDependencies:e.binding.backing.externalDependencies,extensionScopeNamespace:resolveCompiledModuleExtensionScopeNamespace(e.binding)});let t=Object.fromEntries(await Promise.all(Object.entries(e.binding.backing.dependencies??{}).map(async([t,n])=>[t,await e.loadDependency(n)])));return await loadProgrammaticModuleNamespace({backing:e.binding.backing,dependencyNamespaces:t,registries:e.registries})}function resolveCompiledModuleExtensionScopeNamespace(e){return e.owner.kind===`extension`?packageStateNamespace(e.owner.packageName):void 0}export{createCompiledBindingNamespaceLoader,resolveCompiledModuleExtensionScopeNamespace};