Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

ProvidedRequiredArguments::getVisitorpublicWC 1.0

Method of the class: ProvidedRequiredArguments{}

No Hooks.

Returns

null. Nothing (null).

Usage

$ProvidedRequiredArguments = new ProvidedRequiredArguments();
$ProvidedRequiredArguments->getVisitor( $context ): array;
$context(QueryValidationContext) (required)
.

ProvidedRequiredArguments::getVisitor() code WC 10.9.1

public function getVisitor(QueryValidationContext $context): array
{
    $providedRequiredArgumentsOnDirectives = new ProvidedRequiredArgumentsOnDirectives();

    return $providedRequiredArgumentsOnDirectives->getVisitor($context) + [
        NodeKind::FIELD => [
            'leave' => static function (FieldNode $fieldNode) use ($context): ?VisitorOperation {
                $fieldDef = $context->getFieldDef();

                if ($fieldDef === null) {
                    return Visitor::skipNode();
                }

                $argNodes = $fieldNode->arguments;

                $argNodeMap = [];
                foreach ($argNodes as $argNode) {
                    $argNodeMap[$argNode->name->value] = $argNode;
                }

                foreach ($fieldDef->args as $argDef) {
                    $argNode = $argNodeMap[$argDef->name] ?? null;
                    if ($argNode === null && $argDef->isRequired()) {
                        $context->reportError(new Error(
                            static::missingFieldArgMessage($fieldNode->name->value, $argDef->name, $argDef->getType()->toString()),
                            [$fieldNode]
                        ));
                    }
                }

                return null;
            },
        ],
    ];
}