Automattic\WooCommerce\Vendor\GraphQL\Utils

SchemaExtender::extendFieldMapprotectedWC 1.0

Method of the class: SchemaExtender{}

No Hooks.

Returns

Array. array<string, mixed>>

Usage

// protected - for code of main (parent) or child class
$result = $this->extendFieldMap( $type ): array;
$type(InterfaceType|ObjectType) (required)
.

SchemaExtender::extendFieldMap() code WC 10.9.1

protected function extendFieldMap(Type $type): array
{
    $newFieldMap = [];
    $oldFieldMap = $type->getFields();

    foreach (array_keys($oldFieldMap) as $fieldName) {
        $field = $oldFieldMap[$fieldName];

        $newFieldMap[$fieldName] = [
            'name' => $fieldName,
            'description' => $field->description,
            'deprecationReason' => $field->deprecationReason,
            'type' => $this->extendType($field->getType()),
            'args' => $this->extendArgs($field->args),
            'resolve' => $field->resolveFn,
            'argsMapper' => $field->argsMapper,
            'astNode' => $field->astNode,
        ];
    }

    if (isset($this->typeExtensionsMap[$type->name])) {
        foreach ($this->typeExtensionsMap[$type->name] as $extension) {
            assert(
                $extension instanceof ObjectTypeExtensionNode || $extension instanceof InterfaceTypeExtensionNode,
                'proven by schema validation'
            );

            foreach ($extension->fields as $field) {
                $newFieldMap[$field->name->value] = $this->astBuilder->buildField($field, $extension);
            }
        }
    }

    return $newFieldMap;
}