Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules
UniqueArgumentDefinitionNames::getSDLVisitor
Method of the class: UniqueArgumentDefinitionNames{}
No Hooks.
Returns
null. Nothing (null).
Usage
$UniqueArgumentDefinitionNames = new UniqueArgumentDefinitionNames(); $UniqueArgumentDefinitionNames->getSDLVisitor( $context ): array;
- $context(SDLValidationContext) (required)
- .
UniqueArgumentDefinitionNames::getSDLVisitor() UniqueArgumentDefinitionNames::getSDLVisitor code WC 10.9.1
public function getSDLVisitor(SDLValidationContext $context): array
{
$checkArgUniquenessPerField = static function ($node) use ($context): VisitorOperation {
assert(
$node instanceof InterfaceTypeDefinitionNode
|| $node instanceof InterfaceTypeExtensionNode
|| $node instanceof ObjectTypeDefinitionNode
|| $node instanceof ObjectTypeExtensionNode
);
foreach ($node->fields as $fieldDef) {
self::checkArgUniqueness("{$node->name->value}.{$fieldDef->name->value}", $fieldDef->arguments, $context);
}
return Visitor::skipNode();
};
return [
NodeKind::DIRECTIVE_DEFINITION => static fn (DirectiveDefinitionNode $node): VisitorOperation => self::checkArgUniqueness("@{$node->name->value}", $node->arguments, $context),
NodeKind::INTERFACE_TYPE_DEFINITION => $checkArgUniquenessPerField,
NodeKind::INTERFACE_TYPE_EXTENSION => $checkArgUniquenessPerField,
NodeKind::OBJECT_TYPE_DEFINITION => $checkArgUniquenessPerField,
NodeKind::OBJECT_TYPE_EXTENSION => $checkArgUniquenessPerField,
];
}