Mirror: The small sibling of the graphql package, slimmed down for client-side libraries.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Simplify GraphQLError capabilities

+63
+63
alias/error/GraphQLError.mjs
··· 1 + import { getLocation } from 'graphql/language/location'; 2 + import { printLocation, printSourceLocation } from 'graphql/language/printLocation'; 3 + 4 + export class GraphQLError extends Error { 5 + constructor( 6 + message, 7 + nodes, 8 + source, 9 + positions, 10 + path, 11 + originalError, 12 + extensions, 13 + ) { 14 + super(message); 15 + 16 + this.name = 'GraphQLError'; 17 + this.message = message; 18 + 19 + if (path) this.path = path; 20 + if (nodes) this.nodes = nodes; 21 + if (source) this.source = source; 22 + if (positions) this.positions = positions; 23 + if (originalError) this.originalError = originalError; 24 + 25 + let _extensions = extensions; 26 + if (_extensions == null && originalError != null) { 27 + const originalExtensions = originalError.extensions; 28 + if (isObjectLike(originalExtensions)) { 29 + _extensions = originalExtensions; 30 + } 31 + } 32 + 33 + if (_extensions) { 34 + this.extensions = _extensions; 35 + } 36 + } 37 + 38 + toString() { 39 + return printError(this); 40 + } 41 + } 42 + 43 + /** 44 + * Prints a GraphQLError to a string, representing useful location information 45 + * about the error's position in the source. 46 + */ 47 + export function printError(error) { 48 + let output = error.message; 49 + 50 + if (error.nodes) { 51 + for (const node of error.nodes) { 52 + if (node.loc) { 53 + output += '\n\n' + printLocation(node.loc); 54 + } 55 + } 56 + } else if (error.source && error.locations) { 57 + for (const location of error.locations) { 58 + output += '\n\n' + printSourceLocation(error.source, location); 59 + } 60 + } 61 + 62 + return output; 63 + }