Automattic\WooCommerce\Vendor\GraphQL\Validator\Rules

OverlappingFieldsCanBeMerged::subfieldConflictsprotectedWC 1.0

Merge Conflicts between two sub-fields into a single Conflict.

Method of the class: OverlappingFieldsCanBeMerged{}

No Hooks.

Returns

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->subfieldConflicts( $conflicts, $responseName, $ast1, $ast2 ): ?array;
$conflicts(array) (required)
.
$responseName(string) (required)
.
$ast1(FieldNode) (required)
.
$ast2(FieldNode) (required)
.

OverlappingFieldsCanBeMerged::subfieldConflicts() code WC 10.9.1

protected function subfieldConflicts(
    array $conflicts,
    string $responseName,
    FieldNode $ast1,
    FieldNode $ast2
): ?array {
    if ($conflicts === []) {
        return null;
    }

    $reasons = [];
    foreach ($conflicts as $conflict) {
        $reasons[] = $conflict[0];
    }

    $fields1 = [$ast1];
    foreach ($conflicts as $conflict) {
        foreach ($conflict[1] as $field) {
            $fields1[] = $field;
        }
    }

    $fields2 = [$ast2];
    foreach ($conflicts as $conflict) {
        foreach ($conflict[2] as $field) {
            $fields2[] = $field;
        }
    }

    return [
        [
            $responseName,
            $reasons,
        ],
        $fields1,
        $fields2,
    ];
}