Automattic\WooCommerce\Vendor\GraphQL\Type\Definition

QueryPlan::mergeFieldsprivateWC 1.0

Method of the class: QueryPlan{}

No Hooks.

Returns

Array.

Usage

// private - for code of main (parent) class only
$result = $this->mergeFields( $parentType, $type, $fields, $subfields, $implementors ): array;
$parentType(Type&NamedType) (required)
.
$type(Type&NamedType) (required)
.
$fields(array) (required)
.
$subfields(array) (required)
.
$implementors(array) (required)
.

QueryPlan::mergeFields() code WC 10.9.1

private function mergeFields(Type $parentType, Type $type, array $fields, array $subfields, array &$implementors): array
{
    if ($this->groupImplementorFields && $parentType instanceof AbstractType && ! $type instanceof AbstractType) {
        $name = $type->name;
        assert(is_string($name));

        $implementors[$name] = [
            'type' => $type,
            'fields' => $this->arrayMergeDeep(
                $implementors[$name]['fields'] ?? [],
                array_diff_key($subfields, $fields)
            ),
        ];

        $fields = $this->arrayMergeDeep(
            $fields,
            array_intersect_key($subfields, $fields)
        );
    } else {
        $fields = $this->arrayMergeDeep($subfields, $fields);
    }

    return $fields;
}