Это интересный вариант использования, но немного неясно, как будет работать такая проверка.Что приводит к сбою проверки?Есть ли различия между двумя схемами?Дополнительные типы?Дополнительные поля на существующие типы?Различия в типах возврата?Различия в аргументах или типах аргументов?
Однако, в зависимости от вашего ответа на поставленные выше вопросы, вы можете объединить свою собственную функцию проверки с использованием доступных утилит здесь .Помимо основной функции findBreakingChanges
, некоторые из служебных функций, доступных в этом модуле:
findRemovedTypes
findTypesThatChangedKind
findFieldsThatChangedTypeOnObjectOrInterfaceTypes
findFieldsThatChangedTypeOnInputObjectTypes
findTypesRemovedFromUnions
findValuesRemovedFromEnums
findArgChanges
findInterfacesRemovedFromObjectTypes
Если у вас есть справочная или базовая схема, хотя вместо ее проверки вы можете также рассмотреть возможность расширенияэто при построении второй схемы.При этом вы фактически гарантируете, что вторая схема соответствует первой, за исключением случаев, когда вы намеренно отклоняетесь от нее (расширяя существующие типы и т. Д.).Вы можете использовать exteSchema для относительно простых изменений или что-то вроде mergeSchemas * утилиты graphql-tool для более сложных изменений.