Automattic\WooCommerce\Vendor\GraphQL\Utils
BreakingChangesFinder::findInterfacesAddedToObjectTypes
Method of the class: BreakingChangesFinder{}
No Hooks.
Returns
Array
Usage
$result = BreakingChangesFinder::findInterfacesAddedToObjectTypes( $oldSchema, $newSchema ): array;
BreakingChangesFinder::findInterfacesAddedToObjectTypes() BreakingChangesFinder::findInterfacesAddedToObjectTypes code WC 10.9.4
public static function findInterfacesAddedToObjectTypes(
Schema $oldSchema,
Schema $newSchema
): array {
$oldTypeMap = $oldSchema->getTypeMap();
$newTypeMap = $newSchema->getTypeMap();
$interfacesAddedToObjectTypes = [];
foreach ($newTypeMap as $typeName => $newType) {
$oldType = $oldTypeMap[$typeName] ?? null;
if (
! $oldType instanceof ObjectType && ! $oldType instanceof InterfaceType
|| ! $newType instanceof ObjectType && ! $newType instanceof InterfaceType
) {
continue;
}
$oldInterfaces = $oldType->getInterfaces();
$newInterfaces = $newType->getInterfaces();
foreach ($newInterfaces as $newInterface) {
$interfaceWasAdded = true;
foreach ($oldInterfaces as $oldInterface) {
if ($oldInterface->name === $newInterface->name) {
$interfaceWasAdded = false;
}
}
if ($interfaceWasAdded) {
$interfacesAddedToObjectTypes[] = [
'type' => self::DANGEROUS_CHANGE_IMPLEMENTED_INTERFACE_ADDED,
'description' => "{$newInterface->name} added to interfaces implemented by {$typeName}.",
];
}
}
}
return $interfacesAddedToObjectTypes;
}