What is apollo-server-errors?
The apollo-server-errors package provides a set of error types and utilities for handling errors in a GraphQL server, specifically tailored for use with Apollo Server. It allows developers to create more descriptive and standardized error responses in their GraphQL APIs.
What are apollo-server-errors's main functionalities?
ApolloError
ApolloError is the base error that all other error classes extend. It allows you to throw errors in your resolvers with a message, an error code, and additional properties.
const { ApolloError } = require('apollo-server-errors');
throw new ApolloError('Message', 'CODE', { additional: 'properties' });
UserInputError
UserInputError is used to indicate an error when invalid input is provided by the user. It extends ApolloError, adding more context to client-side form validation errors.
const { UserInputError } = require('apollo-server-errors');
throw new UserInputError('Form Arguments invalid', { invalidArgs: Object.keys(args) });
AuthenticationError
AuthenticationError is used to signal an authentication failure. It is useful for resolvers that require the user to be authenticated.
const { AuthenticationError } = require('apollo-server-errors');
throw new AuthenticationError('You must be logged in');
ForbiddenError
ForbiddenError is used to indicate that the user is authenticated but does not have permission to perform a requested action.
const { ForbiddenError } = require('apollo-server-errors');
throw new ForbiddenError('You are not authorized to do this action');
Other packages similar to apollo-server-errors
graphql-errors
graphql-errors is a package that allows you to mask and format GraphQL errors. While it provides similar functionality in terms of error handling, apollo-server-errors is more tightly integrated with Apollo Server and offers a richer set of predefined error types.