Automattic\WooCommerce\Vendor\GraphQL\Utils

SchemaExtender::extendInputFieldMapprotectedWC 1.0

Method of the class: SchemaExtender{}

No Hooks.

Returns

Array. UnnamedInputObjectFieldConfig>

Usage

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

SchemaExtender::extendInputFieldMap() code WC 10.9.1

protected function extendInputFieldMap(InputObjectType $type): array
{
    /** @var array<string, UnnamedInputObjectFieldConfig> $newFieldMap */
    $newFieldMap = [];

    $oldFieldMap = $type->getFields();
    foreach ($oldFieldMap as $fieldName => $field) {
        $extendedType = $this->extendType($field->getType());

        $newFieldConfig = [
            'description' => $field->description,
            'type' => $extendedType,
            'deprecationReason' => $field->deprecationReason,
            'astNode' => $field->astNode,
        ];

        if ($field->defaultValueExists()) {
            $newFieldConfig['defaultValue'] = $field->defaultValue;
        }

        $newFieldMap[$fieldName] = $newFieldConfig;
    }

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

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

    return $newFieldMap;
}