diff options
author | Minteck <contact@minteck.org> | 2022-10-18 08:59:09 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-10-18 08:59:09 +0200 |
commit | 2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 (patch) | |
tree | 17848d95522dab25d3cdeb9c4a6450e2a234861f /alarm/node_modules/graphql/error/formatError.js.flow | |
parent | 108525534c28013cfe1897c30e4565f9893f3766 (diff) | |
download | pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.gz pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.bz2 pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.zip |
Update
Diffstat (limited to 'alarm/node_modules/graphql/error/formatError.js.flow')
-rw-r--r-- | alarm/node_modules/graphql/error/formatError.js.flow | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/alarm/node_modules/graphql/error/formatError.js.flow b/alarm/node_modules/graphql/error/formatError.js.flow new file mode 100644 index 0000000..0ca934b --- /dev/null +++ b/alarm/node_modules/graphql/error/formatError.js.flow @@ -0,0 +1,51 @@ +// @flow strict +import devAssert from '../jsutils/devAssert'; + +import type { SourceLocation } from '../language/location'; + +import type { GraphQLError } from './GraphQLError'; + +/** + * Given a GraphQLError, format it according to the rules described by the + * Response Format, Errors section of the GraphQL Specification. + */ +export function formatError(error: GraphQLError): GraphQLFormattedError { + devAssert(error, 'Received null or undefined error.'); + const message = error.message ?? 'An unknown error occurred.'; + const locations = error.locations; + const path = error.path; + const extensions = error.extensions; + + return extensions && Object.keys(extensions).length > 0 + ? { message, locations, path, extensions } + : { message, locations, path }; +} + +/** + * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors + */ +export type GraphQLFormattedError = {| + /** + * A short, human-readable summary of the problem that **SHOULD NOT** change + * from occurrence to occurrence of the problem, except for purposes of + * localization. + */ + +message: string, + /** + * If an error can be associated to a particular point in the requested + * GraphQL document, it should contain a list of locations. + */ + +locations: $ReadOnlyArray<SourceLocation> | void, + /** + * If an error can be associated to a particular field in the GraphQL result, + * it _must_ contain an entry with the key `path` that details the path of + * the response field which experienced the error. This allows clients to + * identify whether a null result is intentional or caused by a runtime error. + */ + +path: $ReadOnlyArray<string | number> | void, + /** + * Reserved for implementors to extend the protocol however they see fit, + * and hence there are no additional restrictions on its contents. + */ + +extensions?: { [key: string]: mixed, ... }, +|}; |