dependencies method
Returns all the dependencies.
Implementation
List<Node<T>> dependencies(
{bool includeThisInputs = true,
int? maxDepth,
Iterable<Node<T>>? ignore}) {
ignore =
ignore is List<Node<T>> ? ignore : (ignore?.toList() ?? <Node<T>>[]);
Iterable<Node<T>> outputs;
if (maxDepth != null && maxDepth == 1) {
outputs = ignore.isNotEmpty
? this.outputs.where((e) => !ignore!.contains(e))
: this.outputs;
} else {
outputs = outputsInDepth(maxDepth: maxDepth, ignore: ignore);
}
var outputsDependencies = outputs
.where((e) => e != this)
.expand((e) => e.inputsInDepth(ignore: ignore));
var dependencies = <Node<T>>[
if (includeThisInputs) ...inputsInDepth(),
...outputsDependencies
].where((e) => e != this).toSet().toList();
return dependencies;
}