synopkg 14.0.1

Consistent dependency versions in large JavaScript Monorepos
use crate::{commands::ui, context::Context};

pub fn run(ctx: Context) -> i32 {
  let mut is_invalid = false;

  ctx
    .version_groups
    .iter()
    .filter(|group| !group.has_ignored_variant() || ctx.config.cli.show_ignored)
    .for_each(|group| {
      ui::group::print_header(&ctx, group);
      group.get_sorted_dependencies(&ctx.config.cli.sort).for_each(|dependency| {
        ui::dependency::print(&ctx, dependency, &group.variant);
        dependency.get_sorted_instances().for_each(|instance| {
          if ctx.config.cli.show_instances {
            ui::instance::print(&ctx, instance, &group.variant);
          }
          if instance.is_invalid() || (instance.is_suspect() && ctx.config.rcfile.strict) {
            is_invalid = true;
          }
        });
      });
    });

  if !is_invalid {
    ui::util::print_no_issues_found();
  }

  if is_invalid {
    1
  } else {
    0
  }
}