mirror of
https://github.com/pesde-pkg/pesde.git
synced 2025-05-04 10:33:47 +01:00
refactor: improve code structure
This commit is contained in:
parent
f51bd563f1
commit
c05bfa5a76
1 changed files with 10 additions and 6 deletions
|
@ -247,24 +247,28 @@ impl Project {
|
|||
download_graph_options = download_graph_options.reporter(reporter);
|
||||
}
|
||||
|
||||
let mut downloaded_graph = DependencyGraph::new();
|
||||
|
||||
let mut queue = graph
|
||||
.iter()
|
||||
.filter(|(_id, node)| {
|
||||
.filter(|(_, node)| {
|
||||
node.direct.is_some() && install_dependencies_mode.fits(node.resolved_ty)
|
||||
})
|
||||
.collect::<VecDeque<_>>();
|
||||
|
||||
let mut correct_deps = DependencyGraph::new();
|
||||
while let Some((id, node)) = queue.pop_front() {
|
||||
correct_deps.insert(id.clone(), node.clone());
|
||||
if correct_deps.insert(id.clone(), node.clone()).is_some() {
|
||||
// prevent an infinite loop with recursive dependencies
|
||||
continue;
|
||||
}
|
||||
|
||||
node.dependencies
|
||||
.iter()
|
||||
.filter_map(|(id, _alias)| graph.get(id).map(|node| (id, node)))
|
||||
.keys()
|
||||
.filter_map(|id| graph.get(id).map(|node| (id, node)))
|
||||
.for_each(|x| queue.push_back(x));
|
||||
}
|
||||
|
||||
let mut downloaded_graph = DependencyGraph::new();
|
||||
|
||||
let graph_to_download = if force {
|
||||
correct_deps
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue