UNPKG

zephyr-xpack-internal

Version:

Xpack internals for Zephyr

52 lines (51 loc) • 1.97 kB
import "node:module"; import { is_zephyr_dependency_pair, readPackageJson } from "zephyr-agent"; import { iterateFederatedRemoteConfig } from "./iterate-federated-remote-config.mjs"; function extractFederatedDependencyPairs(config) { const depsPairs = []; const { zephyrDependencies } = readPackageJson(config.context ?? process.cwd()); if (zephyrDependencies) Object.entries(zephyrDependencies).map(([name, version])=>{ depsPairs.push({ name, version }); }); iterateFederatedRemoteConfig(config, (remotesConfig)=>{ if (!remotesConfig?.remotes) return; const remoteEntries = parseRemotesAsEntries(remotesConfig.remotes); remoteEntries.forEach(([remote_name, remote_version])=>{ depsPairs.push({ name: remote_name, version: remote_version }); }); }); return depsPairs.flat().filter((dep)=>is_zephyr_dependency_pair(dep)); } function parseRemotesAsEntries(remotes) { if (!remotes) return []; const remotePairs = []; const remoteEntries = Array.isArray(remotes) ? remotes : Object.entries(remotes); remoteEntries.map((remote)=>{ if (Array.isArray(remote)) { const version = 'string' == typeof remote[1] ? remote[1] : JSON.stringify(remote[1]); remotePairs.push([ remote[0], version ]); } else if ('string' == typeof remote) remotePairs.push([ remote, remote ]); else Object.entries(remote).forEach(([name, config])=>{ const version = 'string' == typeof config ? config : JSON.stringify(config); remotePairs.push([ name, version ]); }); }); return remotePairs; } export { extractFederatedDependencyPairs, parseRemotesAsEntries }; //# sourceMappingURL=extract-federated-dependency-pairs.mjs.map