Automattic\WooCommerce\Vendor\GraphQL\Utils
ASTDefinitionBuilder::makeInterfaceDef
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() 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,
]);
}