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