for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Digia\GraphQL\Language\ASTBuilder;
use Digia\GraphQL\Error\SyntaxErrorException;
use Digia\GraphQL\Language\LexerInterface;
use Digia\GraphQL\Language\Node\NodeKindEnum;
use Digia\GraphQL\Language\TokenKindEnum;
class EnumValuesDefinitionASTBuilder extends AbstractASTBuilder
{
/**
* @inheritdoc
*/
public function supportsBuilder(string $kind): bool
return $kind === ASTKindEnum::ENUM_VALUES_DEFINITION;
}
public function build(LexerInterface $lexer, array $params): ?array
return $this->peek($lexer, TokenKindEnum::BRACE_L)
? $this->many(
$lexer,
TokenKindEnum::BRACE_L,
[$this, 'parseEnumValueDefinition'],
TokenKindEnum::BRACE_R
)
: [];
* @param LexerInterface $lexer
* @return array
* @throws SyntaxErrorException
protected function parseEnumValueDefinition(LexerInterface $lexer): array
$start = $lexer->getToken();
return [
'kind' => NodeKindEnum::ENUM_VALUE_DEFINITION,
'description' => $this->buildAST(ASTKindEnum::DESCRIPTION, $lexer),
'name' => $this->buildAST(ASTKindEnum::NAME, $lexer),
'directives' => $this->buildAST(ASTKindEnum::DIRECTIVES, $lexer),
'loc' => $this->buildLocation($lexer, $start),
];