gql-error-handler

1.0.2 • Public • Published

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, list partialDataPlugin as an element in the array value of the plugins 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

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.

Package Sidebar

Install

npm i gql-error-handler

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

8.65 MB

Total Files

23

Last publish

Collaborators

  • jeremy-buronyi
  • samryder
  • tiffanywong149
  • nancyynx88
  • woobaekim