visitOperationDefinitionNode method

  1. @override
  2. @override
OperationDefinitionNode visitOperationDefinitionNode(
  1. OperationDefinitionNode node
)

appends type name to OperationDefinitionNode

Implementation

@override

/// appends type name to OperationDefinitionNode
@override
OperationDefinitionNode visitOperationDefinitionNode(
    OperationDefinitionNode node) {
  // if (node.selectionSet == null) {
  //   return node;
  // }

  return OperationDefinitionNode(
    type: node.type,
    name: node.name,
    variableDefinitions: node.variableDefinitions,
    directives: node.directives,
    span: node.span,
    selectionSet: SelectionSetNode(
      selections: <SelectionNode>[
        ...node.selectionSet.selections.where((element) =>
            (element is! FieldNode) || (element.name.value != typeName)),
        FieldNode(name: NameNode(value: typeName)),
      ],
    ),
  );
}