import type { Maybe } from '../jsutils/Maybe'; import type { ASTNode } from '../language/ast'; import type { SourceLocation } from '../language/location'; import type { Source } from '../language/source'; /** * Custom extensions * * @remarks * Use a unique identifier name for your extension, for example the name of * your library or project. Do not use a shortened identifier as this increases * the risk of conflicts. We recommend you add at most one extension field, * an object which can contain all the values you need. */ export interface GraphQLErrorExtensions { [attributeName: string]: unknown; } export interface GraphQLErrorOptions { nodes?: ReadonlyArray | ASTNode | null; source?: Maybe; positions?: Maybe>; path?: Maybe>; originalError?: Maybe< Error & { readonly extensions?: unknown; } >; extensions?: Maybe; } /** * A GraphQLError describes an Error found during the parse, validate, or * execute phases of performing a GraphQL operation. In addition to a message * and stack trace, it also includes information about the locations in a * GraphQL document and/or execution result that correspond to the Error. */ export declare class GraphQLError extends Error { /** * An array of `{ line, column }` locations within the source GraphQL document * which correspond to this error. * * Errors during validation often contain multiple locations, for example to * point out two things with the same name. Errors during execution include a * single location, the field which produced the error. * * Enumerable, and appears in the result of JSON.stringify(). */ readonly locations: ReadonlyArray | undefined; /** * An array describing the JSON-path into the execution response which * corresponds to this error. Only included for errors during execution. * * Enumerable, and appears in the result of JSON.stringify(). */ readonly path: ReadonlyArray | undefined; /** * An array of GraphQL AST Nodes corresponding to this error. */ readonly nodes: ReadonlyArray | undefined; /** * The source GraphQL document for the first location of this error. * * Note that if this Error represents more than one node, the source may not * represent nodes after the first node. */ readonly source: Source | undefined; /** * An array of character offsets within the source GraphQL document * which correspond to this error. */ readonly positions: ReadonlyArray | undefined; /** * The original error thrown from a field resolver during execution. */ readonly originalError: Error | undefined; /** * Extension fields to add to the formatted error. */ readonly extensions: GraphQLErrorExtensions; constructor(message: string, options?: GraphQLErrorOptions); /** * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead. */ constructor( message: string, nodes?: ReadonlyArray | ASTNode | null, source?: Maybe, positions?: Maybe>, path?: Maybe>, originalError?: Maybe< Error & { readonly extensions?: unknown; } >, extensions?: Maybe, ); get [Symbol.toStringTag](): string; toString(): string; toJSON(): GraphQLFormattedError; } /** * See: https://spec.graphql.org/draft/#sec-Errors */ export interface 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. */ readonly message: string; /** * If an error can be associated to a particular point in the requested * GraphQL document, it should contain a list of locations. */ readonly locations?: ReadonlyArray; /** * 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. */ readonly path?: ReadonlyArray; /** * Reserved for implementors to extend the protocol however they see fit, * and hence there are no additional restrictions on its contents. */ readonly extensions?: { [key: string]: unknown; }; } /** * Prints a GraphQLError to a string, representing useful location information * about the error's position in the source. * * @deprecated Please use `error.toString` instead. Will be removed in v17 */ export declare function printError(error: GraphQLError): string; /** * Given a GraphQLError, format it according to the rules described by the * Response Format, Errors section of the GraphQL Specification. * * @deprecated Please use `error.toJSON` instead. Will be removed in v17 */ export declare function formatError(error: GraphQLError): GraphQLFormattedError;