gql-error-handler
v1.0.2
Published
gql-error-handler is an Apollo Server plugin that returns partial data upon validation errors in GraphQL.
Downloads
5
Readme
gql-error-handler is an Apollo Server plugin that returns partial data upon validation errors in GraphQL.
Features
partialDataPlugin: A Javascript function that reformulates queries that would otherwise be invalidated by removing invalid fields and allows developers to use partial data returned.
- Functionality is supported for queries and mutations with multiple root levels and nested fields up to 3 levels deep, including circular dependencies
- Implement core functionality through utilization of a single plugin in an
ApolloServer
instance
Before using our plugin, no data is returned due to validation errors:
After using our plugin, partial data is returned for all valid fields and a custom error message is added indicating which fields were problematic:
Setup
- In your server file utilizing Apollo Server, import or require in
partialDataPlugin
- At initialization of your instance of
ApolloServer
, listpartialDataPlugin
as an element in the array value of theplugins
property
const { ApolloServer } = require('apollo-server');
const partialDataPlugin = require('gql-error-handler');
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [partialDataPlugin],
});
Installation
npm i gql-error-handler
Future Considerations
- Extend handling of nested queries beyond three levels of depth
- Develop GUI to show logs of previous queries and server response
- Add authentication and other security measures
- Handle other types of errors in GraphQL
Contributors
- Jeremy Buron-Yi | LinkedIn | GitHub
- Woobae Kim | LinkedIn | GitHub
- Samuel Ryder | LinkedIn | GitHub
- Tiffany Wong | LinkedIn | GitHub
- Nancy Yang | LinkedIn | GitHub
License
gql-error-handler is MIT licensed.
Thank you for using gql-error-handler. We hope that through the use of our plugin, your GraphQL user experience is improved. Should you encounter any issues during implementation or require further information, please reach out to us for assistance.