GraphQL Inspector
GraphQL Inspector ouputs a list of changes between two GraphQL schemas. Every change is precisely explained and marked as breaking, non-breaking or dangerous. It helps you validate documents and fragments against a schema and even find similar or duplicated types.
Features
Major features:
- Compares schemas
- Finds breaking or dangerous changes
- Validates documents against a schema
- Finds similar / duplicated types
- Schema coverage based on documents
- Serves a GraphQL server with faked data and GraphQL Playground
GraphQL Inspector has a CLI and also a programatic API, so you can use it however you want to and even build tools on top of it.
Installation
yarn add graphql-inspector
CLI Usage
graphql-inspector diff <OLD_SCHEMA> <NEW_SCHEMA>graphql-inspector validate <DOCUMENTS> <SCHEMA>graphql-inspector similar <SCHEMA>graphql-inspector serve <SCHEMA>graphql-inspector coverage <DOCUMENTS> <SCHEMA>graphql-inspector --help
Examples
# Compare schemas $ graphql-inspector diff OLD_SCHEMA NEW_SCHEMA Detected the following changes between schemas: 🛑 Field `name` was removed from object type `Post`⚠️ Enum value `ARCHIVED` was added to enum `Status`✅ Field `createdAt` was added to object type `Post` Detected 1 breaking change # Validate documents $ graphql-inspector validate DOCUMENTS SCHEMA Detected 1 invalid document: 🛑 ./documents/post.graphql: - Cannot query field createdAtSomePoint on type Post. Did you mean createdAt? # Find similar types $ graphql-inspector similar SCHEMA ✅ PostBest match : BlogPost # Serve faked GraphQL API with Playground $ graphql-inspector serve SCHEMA ✅ Serving the GraphQL API on http://localhost:4000/ # Check coverage $ graphql-inspector coverage DOCUMENTS SCHEMA Schema coverage type Query type Post
Programatic Usage
; // diff;// validate;// similar;// coverage;// ...
Related
Some part of the library was ported to NodeJS from Ruby's GraphQL Schema Comparator
License
MIT © Kamil Kisiela