parseOperationDefinition method
Implementation
OperationDefinitionContext? parseOperationDefinition() {
var selectionSet = parseSelectionSet();
if (selectionSet != null) {
return OperationDefinitionContext(null, null, null, selectionSet);
} else {
if (nextName('mutation') ||
nextName('query') ||
nextName('subscription')) {
var TYPE = current;
var NAME = next(TokenType.NAME) ? current : null;
var variables = parseVariableDefinitions();
var dirs = parseDirectives();
var selectionSet = parseSelectionSet();
if (selectionSet != null) {
return OperationDefinitionContext(TYPE, NAME, variables, selectionSet)
..directives.addAll(dirs);
} else {
errors.add(SyntaxError(
'Missing selection set in fragment definition.',
NAME?.span ?? TYPE?.span));
return null;
}
} else {
return null;
}
}
}