Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

OverlappingFieldsCanBeMerged::getVisitorpublicWC 1.0

Method of the class: OverlappingFieldsCanBeMerged{}

No Hooks.

Returns

null. Nothing (null).

Usage

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

OverlappingFieldsCanBeMerged::getVisitor() code WC 10.9.1

public function getVisitor(QueryValidationContext $context): array
{
    $this->comparedFragmentPairs = new PairSet();
    $this->cachedFieldsAndFragmentNames = new \SplObjectStorage();

    return [
        NodeKind::SELECTION_SET => function (SelectionSetNode $selectionSet) use ($context): void {
            $conflicts = $this->findConflictsWithinSelectionSet(
                $context,
                $context->getParentType(),
                $selectionSet
            );

            foreach ($conflicts as $conflict) {
                [[$responseName, $reason], $fields1, $fields2] = $conflict;

                $context->reportError(new Error(
                    static::fieldsConflictMessage($responseName, $reason),
                    array_merge($fields1, $fields2)
                ));
            }
        },
    ];
}