Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

UniqueArgumentDefinitionNames::getSDLVisitorpublicWC 1.0

Method of the class: UniqueArgumentDefinitionNames{}

No Hooks.

Returns

null. Nothing (null).

Usage

$UniqueArgumentDefinitionNames = new UniqueArgumentDefinitionNames();
$UniqueArgumentDefinitionNames->getSDLVisitor( $context ): array;
$context(SDLValidationContext) (required)
.

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,
    ];
}