From 1793f247ddc41f49c237c9d842fedb636123b288 Mon Sep 17 00:00:00 2001 From: Jeremy Walker Date: Wed, 18 Mar 2020 10:41:39 -0700 Subject: [PATCH] Added resolver-returned value to the error object, plus further documentation on expected error fields (#590) --- README.md | 6 ++++++ src/index.js | 1 + 2 files changed, 7 insertions(+) diff --git a/README.md b/README.md index 090932f8..21b42f2b 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,12 @@ The `graphqlHTTP` function accepts the following options: errors produced by fulfilling a GraphQL operation. If no function is provided, GraphQL's default spec-compliant [`formatError`][] function will be used. + Although the fields on the error provided to this function may vary (based on the error type), they will typically include: + * **message:** the error message + * **locations:** the location(s) in the Javascript code where the error ocurred + * **path:** the path within the returned results where the error occurred (eg. in a schema violation error, the path to the part of the results that violated the schema) + * **result:** the value which was returned by the resolver (if any) + - **`customParseFn`**: An optional function which will be used to create a document instead of the default `parse` from `graphql-js`. diff --git a/src/index.js b/src/index.js index 72f98371..8a757b45 100644 --- a/src/index.js +++ b/src/index.js @@ -368,6 +368,7 @@ function graphqlHTTP(options: Options): Middleware { } // Format any encountered errors. if (result && result.errors) { + (result: any).errors = result.errors.map(err => ({...err, result: result.data})); (result: any).errors = result.errors.map(formatErrorFn); }