Automattic\WooCommerce\Vendor\GraphQL\Utils

ASTDefinitionBuilder::makeTypeDefprivateWC 1.0

Method of the class: ASTDefinitionBuilder{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->makeTypeDef( $def ): ObjectType;
$def(ObjectTypeDefinitionNode) (required)
.

ASTDefinitionBuilder::makeTypeDef() code WC 10.9.1

private function makeTypeDef(ObjectTypeDefinitionNode $def): ObjectType
{
    $name = $def->name->value;
    /** @var array<ObjectTypeExtensionNode> $extensionASTNodes (proven by schema validation) */
    $extensionASTNodes = $this->typeExtensionsMap[$name] ?? [];
    $allNodes = [$def, ...$extensionASTNodes];

    return new ObjectType([
        'name' => $name,
        'description' => $def->description->value ?? null,
        'fields' => fn (): array => $this->makeFieldDefMap($allNodes),
        'interfaces' => fn (): array => $this->makeImplementedInterfaces($allNodes),
        'astNode' => $def,
        'extensionASTNodes' => $extensionASTNodes,
    ]);
}