Automattic\WooCommerce\Vendor\GraphQL\Utils

ASTDefinitionBuilder::makeEnumDefprivateWC 1.0

Method of the class: ASTDefinitionBuilder{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->makeEnumDef( $def ): EnumType;
$def(EnumTypeDefinitionNode) (required)
.

ASTDefinitionBuilder::makeEnumDef() code WC 10.9.1

private function makeEnumDef(EnumTypeDefinitionNode $def): EnumType
{
    $name = $def->name->value;
    /** @var array<EnumTypeExtensionNode> $extensionASTNodes (proven by schema validation) */
    $extensionASTNodes = $this->typeExtensionsMap[$name] ?? [];

    $values = [];
    foreach ([$def, ...$extensionASTNodes] as $node) {
        foreach ($node->values as $value) {
            $values[$value->name->value] = [
                'description' => $value->description->value ?? null,
                'deprecationReason' => $this->getDeprecationReason($value),
                'astNode' => $value,
            ];
        }
    }

    return new EnumType([
        'name' => $name,
        'description' => $def->description->value ?? null,
        'values' => $values,
        'astNode' => $def,
        'extensionASTNodes' => $extensionASTNodes,
    ]);
}