dependencyClosure method

Set<ModuleId> dependencyClosure(
  1. ModuleId id
)

The modules id depends on, directly or not, or none if id is not in the app.

Implementation

Set<ModuleId> dependencyClosure(ModuleId id) {
  final closure = <ModuleId>{};
  void visit(ModuleId current) {
    final module = this.module(current);
    if (module == null) return;
    for (final dependency in module.descriptor.dependsOn) {
      if (closure.add(dependency)) visit(dependency);
    }
  }

  visit(id);
  return closure;
}