zephyr-xpack-internal
Version:
Xpack internals for Zephyr
52 lines (51 loc) • 1.97 kB
JavaScript
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