Automattic\WooCommerce\Vendor\GraphQL\Utils

ASTDefinitionBuilder::makeInterfaceDefprivateWC 1.0

Method of the class: ASTDefinitionBuilder{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->makeInterfaceDef( $def ): InterfaceType;
$def(InterfaceTypeDefinitionNode) (required)
.

ASTDefinitionBuilder::makeInterfaceDef() code WC 10.9.1

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

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