fob_graph/analysis/
stats.rs

1use crate::Result;
2use crate::{GraphStatistics, ModuleGraph};
3
4pub fn compute_stats(graph: &ModuleGraph) -> Result<GraphStatistics> {
5    let unused = graph.unused_exports()?;
6    let unreachable = graph.unreachable_modules()?;
7    let external = graph.external_dependencies()?;
8    let modules = graph.modules()?;
9    let entry_points = graph.entry_points()?;
10
11    Ok(GraphStatistics::new(
12        modules.len(),
13        entry_points.len(),
14        external.len(),
15        modules.iter().filter(|m| m.has_side_effects).count(),
16        unused.len(),
17        unreachable.len(),
18    ))
19}