Automattic\WooCommerce\Vendor\GraphQL\Utils
BreakingChangesFinder::findValuesRemovedFromEnums
Given two schemas, returns an Array containing descriptions of any breaking changes in the newSchema related to removing values from an enum type.
Method of the class: BreakingChangesFinder{}
No Hooks.
Returns
Array
Usage
$result = BreakingChangesFinder::findValuesRemovedFromEnums( $oldSchema, $newSchema ): array;
BreakingChangesFinder::findValuesRemovedFromEnums() BreakingChangesFinder::findValuesRemovedFromEnums code WC 10.9.1
public static function findValuesRemovedFromEnums(
Schema $oldSchema,
Schema $newSchema
): array {
$oldTypeMap = $oldSchema->getTypeMap();
$newTypeMap = $newSchema->getTypeMap();
$valuesRemovedFromEnums = [];
foreach ($oldTypeMap as $typeName => $oldType) {
$newType = $newTypeMap[$typeName] ?? null;
if (! ($oldType instanceof EnumType) || ! ($newType instanceof EnumType)) {
continue;
}
$valuesInNewEnum = [];
foreach ($newType->getValues() as $value) {
$valuesInNewEnum[$value->name] = true;
}
foreach ($oldType->getValues() as $value) {
if (! isset($valuesInNewEnum[$value->name])) {
$valuesRemovedFromEnums[] = [
'type' => self::BREAKING_CHANGE_VALUE_REMOVED_FROM_ENUM,
'description' => "{$value->name} was removed from enum type {$typeName}.",
];
}
}
}
return $valuesRemovedFromEnums;
}