Something went wrong. Try again.
Mirror: The spec-compliant minimum of client-side GraphQL.
Something went wrong. Try again.
1.6 kB · 55 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import type { Maybe, Extensions, Source } from './types';import type { ASTNode } from './ast';
export class GraphQLError extends Error { readonly locations: ReadonlyArray<any> | undefined; readonly path: ReadonlyArray<string | number> | undefined; readonly nodes: ReadonlyArray<any> | undefined; readonly source: Source | undefined; readonly positions: ReadonlyArray<number> | undefined; readonly originalError: Error | undefined; readonly extensions: Extensions;
constructor( message: string, nodes?: ReadonlyArray<ASTNode> | ASTNode | null, source?: Maybe<Source>, positions?: Maybe<ReadonlyArray<number>>, path?: Maybe<ReadonlyArray<string | number>>, originalError?: Maybe<Error>, extensions?: Maybe<Extensions> ) { super(message);
this.name = 'GraphQLError'; this.message = message;
if (path) this.path = path; if (nodes) this.nodes = (Array.isArray(nodes) ? nodes : [nodes]) as ASTNode[]; if (source) this.source = source; if (positions) this.positions = positions; if (originalError) this.originalError = originalError;
let _extensions = extensions; if (!_extensions && originalError) { const originalExtensions = (originalError as any).extensions; if (originalExtensions && typeof originalExtensions === 'object') { _extensions = originalExtensions; } }
this.extensions = _extensions || {}; }
toJSON(): any { return { ...this, message: this.message }; }
toString(): string { return this.message; }
get [Symbol.toStringTag](): string { return 'GraphQLError'; }}