UNPKG

knowhub

Version:

Synchronize AI coding–agent knowledge files (rules, templates, guidelines) across your project.

45 lines • 1.66 kB
import { ResourceError, formatError, handleNodeError } from "./errors.js"; import { ConsoleLogger } from "./logger.js"; import { pluginRegistry } from "./plugins/index.js"; export async function fetchResources(resources, projectRoot = process.cwd(), logger) { const fetchedResources = []; for (const definition of resources) { try { const fetched = await fetchSingleResource(definition, projectRoot, logger); fetchedResources.push(fetched); } catch (error) { if (error instanceof ResourceError) { throw error; } const errorMessage = formatError(error); throw new ResourceError(`Failed to fetch resource: ${errorMessage}`); } } return fetchedResources; } async function fetchSingleResource(definition, projectRoot, logger) { const plugin = pluginRegistry.resolve(definition.plugin); const context = { projectRoot, logger: logger || new ConsoleLogger(), }; try { const result = await plugin.fetch(definition.pluginConfig, context); return { definition, localPath: result.localPath, isDirectory: result.isDirectory || false, content: result.content, pluginMetadata: result.metadata, }; } catch (error) { if (error instanceof ResourceError) { throw error; } const errorMessage = formatError(error); throw new ResourceError(`Failed to fetch with plugin "${definition.plugin}": ${errorMessage}`, definition.plugin); } } //# sourceMappingURL=resource.js.map