Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

UniqueArgumentNames::getASTVisitorpublicWC 1.0

Method of the class: UniqueArgumentNames{}

No Hooks.

Returns

null. Nothing (null).

Usage

$UniqueArgumentNames = new UniqueArgumentNames();
$UniqueArgumentNames->getASTVisitor( $context ): array;
$context(ValidationContext) (required)
.

UniqueArgumentNames::getASTVisitor() code WC 11.0.1

public function getASTVisitor(ValidationContext $context): array
{
    $this->knownArgNames = [];

    return [
        NodeKind::FIELD => function (): void {
            $this->knownArgNames = [];
        },
        NodeKind::DIRECTIVE => function (): void {
            $this->knownArgNames = [];
        },
        NodeKind::ARGUMENT => function (ArgumentNode $node) use ($context): VisitorOperation {
            $argName = $node->name->value;
            if (isset($this->knownArgNames[$argName])) {
                $context->reportError(new Error(
                    static::duplicateArgMessage($argName),
                    [$this->knownArgNames[$argName], $node->name]
                ));
            } else {
                $this->knownArgNames[$argName] = $node->name;
            }

            return Visitor::skipNode();
        },
    ];
}