diff --git a/src/error/__tests__/GraphQLError-test.js b/src/error/__tests__/GraphQLError-test.js index 1d903813f4e..93984115480 100644 --- a/src/error/__tests__/GraphQLError-test.js +++ b/src/error/__tests__/GraphQLError-test.js @@ -136,7 +136,6 @@ describe('GraphQLError', () => { message: 'msg', locations: undefined, path: ['path', 3, 'to', 'field'], - extensions: undefined, }); }); diff --git a/src/error/formatError.js b/src/error/formatError.js index 811075cdfc3..a6718129618 100644 --- a/src/error/formatError.js +++ b/src/error/formatError.js @@ -17,17 +17,19 @@ import type { SourceLocation } from '../language/location'; */ export function formatError(error: GraphQLError): GraphQLFormattedError { invariant(error, 'Received null or undefined error.'); - return { - message: error.message || 'An unknown error occurred.', - locations: error.locations, - path: error.path, - extensions: error.extensions, - }; + const message = error.message || 'An unknown error occurred.'; + const locations = error.locations; + const path = error.path; + const extensions = error.extensions; + + return extensions + ? { message, locations, path, extensions } + : { message, locations, path }; } export type GraphQLFormattedError = {| +message: string, +locations: $ReadOnlyArray | void, +path: $ReadOnlyArray | void, - +extensions: { [key: string]: mixed } | void, + +extensions?: { [key: string]: mixed }, |};