JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 382034
  • Score
    100M100P100Q169732F
  • License MIT

Error Apollo Link for GraphQL Network Stack

Package Exports

  • apollo-link-error

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (apollo-link-error) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme


Purpose

An Apollo Link to allow sending error events to custom services or loggers.

Installation

npm install apollo-link-error --save

Usage

import { onError } from "apollo-link-error";

const link = onError(({ graphQLErrors, networkError }) => {
  if (graphQLErrors)
    graphQLErrors.map(({ message, locations, path }) =>
      console.log(
        `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`,
      ),
    );
  if (networkError) console.log(`[Network error]: ${networkError}`);
})

Options

Error Link takes a function that is called in the event of an error. This function is called with an object containing the following keys:

  • operation: The Operation that errored
  • response: The Execution of the reponse
  • graphQLErrors: An array of errors from the GraphQL endpoint
  • networkError: any error during the link execution or server response

Note: networkError is the value from the downlink's error callback. In most cases, graphQLErrors is the errors field of the result from the last next call. A networkError can contain additional fields, such as a GraphQL object in the case of a failing HTTP status code from apollo-link-http. In this situation, graphQLErrors is an alias for networkError.result.errors if the property exists.

Ignoring errors

If you want to conditionally ignore errors, you can set response.errors = null; within the error handler:

onError(({ response, operation }) => {
  if (operation.operationName === "IgnoreErrorsQuery") {
    response.errors = null;
  }
})

Context

The Error Link does not use the context for anything