addFragment method
void
addFragment(
- Node? node, [
- List<String> from = const []
])
Implementation
void addFragment(Node? node, [List<String> from = const []]) {
if (node is FragmentDefinitionNode) {
var fragmentName = node.name.value;
fragmentDepends.addType(fragmentName);
from.forEach((f) {
fragmentDepends.add(f, fragmentName);
fragmentDepends.addAll(f, fragmentDepends.get(fragmentName));
});
if (fragments.containsKey(fragmentName)) {
return;
}
fragments[fragmentName] = node;
void inspectNode(SelectionSetNode? set) {
set?.selections.forEach((sel) {
if (sel is FragmentSpreadNode) {
addFragment(
doc.findFragment(sel.name.value), [...from, fragmentName]);
} else if (sel is FieldNode) {
inspectNode(sel.selectionSet);
}
});
}
inspectNode(node.selectionSet);
}
}