Skip to content

Commit

Permalink
no cyclical deps
Browse files Browse the repository at this point in the history
  • Loading branch information
enisdenjo committed Jan 13, 2025
1 parent b3d8142 commit 9f4f26d
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 44 deletions.
40 changes: 37 additions & 3 deletions src/error/GraphQLError.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ import { ASTNode } from '../language/ast';
import { Source } from '../language/source';
import { SourceLocation } from '../language/location';

// eslint-disable-next-line import/no-cycle
import { GraphQLFormattedError } from './formatError';

/**
* Custom extensions
*
Expand Down Expand Up @@ -96,3 +93,40 @@ export class GraphQLError extends Error {
* about the error's position in the source.
*/
export 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.
*/
export function formatError(error: GraphQLError): GraphQLFormattedError;

/**
* @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
*/
export interface GraphQLFormattedError<
TExtensions extends Record<string, any> = Record<string, any>
> {
/**
* 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<SourceLocation>;
/**
* 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<string | number>;
/**
* Reserved for implementors to extend the protocol however they see fit,
* and hence there are no additional restrictions on its contents.
*/
readonly extensions?: TExtensions;
}
42 changes: 1 addition & 41 deletions src/error/formatError.d.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1 @@
import { SourceLocation } from '../language/location';

// eslint-disable-next-line import/no-cycle
import { 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;

/**
* @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
*/
export interface GraphQLFormattedError<
TExtensions extends Record<string, any> = Record<string, any>
> {
/**
* 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<SourceLocation>;
/**
* 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<string | number>;
/**
* Reserved for implementors to extend the protocol however they see fit,
* and hence there are no additional restrictions on its contents.
*/
readonly extensions?: TExtensions;
}
export { formatError, GraphQLFormattedError } from './GraphQLError';

0 comments on commit 9f4f26d

Please sign in to comment.