clone method

ProjectGraph clone()

Create a deep copy of this graph.

Implementation

ProjectGraph clone() {
  final clonedNodes = <String, DependencyNode>{};

  for (final entry in _nodes.entries) {
    final node = entry.value;
    clonedNodes[entry.key] = DependencyNode(
      id: node.id,
      type: node.type,
      widgetClassKey: node.widgetClassKey,
      imports: Set<String>.from(node.imports),
      importedBy: Set<String>.from(node.importedBy),
      componentClassKeys: Set<String>.from(node.componentClassKeys),
      navigationTargetPageKeys: Set<String>.from(
        node.navigationTargetPageKeys,
      ),
      sheetDialogComponentKeys: Set<String>.from(
        node.sheetDialogComponentKeys,
      ),
    );
  }

  return ProjectGraph(nodes: clonedNodes);
}