编辑文件:VariablesAreInputTypes.php
<?php declare(strict_types=1); namespace Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules; use Automattic\WooCommerce\Vendor\GraphQL\Error\Error; use Automattic\WooCommerce\Vendor\GraphQL\Language\AST\NodeKind; use Automattic\WooCommerce\Vendor\GraphQL\Language\AST\VariableDefinitionNode; use Automattic\WooCommerce\Vendor\GraphQL\Language\Printer; use Automattic\WooCommerce\Vendor\GraphQL\Type\Definition\Type; use Automattic\WooCommerce\Vendor\GraphQL\Utils\AST; use Automattic\WooCommerce\Vendor\GraphQL\Validator\QueryValidationContext; class VariablesAreInputTypes extends ValidationRule { public function getVisitor(QueryValidationContext $context): array { return [ NodeKind::VARIABLE_DEFINITION => static function (VariableDefinitionNode $node) use ($context): void { $type = AST::typeFromAST([$context->getSchema(), 'getType'], $node->type); // If the variable type is not an input type, return an error. if ($type === null || Type::isInputType($type)) { return; } $variableName = $node->variable->name->value; $context->reportError(new Error( static::nonInputTypeOnVarMessage($variableName, Printer::doPrint($node->type)), [$node->type] )); }, ]; } public static function nonInputTypeOnVarMessage(string $variableName, string $typeName): string { return "Variable \"\${$variableName}\" cannot be non-input type \"{$typeName}\"."; } }
保存
返回