diff --git a/src/error/GraphQLError.ts b/src/error/GraphQLError.ts index a3ce229968..a2404d6040 100644 --- a/src/error/GraphQLError.ts +++ b/src/error/GraphQLError.ts @@ -23,6 +23,19 @@ export interface GraphQLErrorExtensions { [attributeName: string]: unknown; } +/** + * Custom formatted 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 GraphQLFormattedErrorExtensions { + [attributeName: string]: unknown; +} + export interface GraphQLErrorOptions { nodes?: ReadonlyArray | ASTNode | null | undefined; source?: Maybe; @@ -238,5 +251,5 @@ export interface GraphQLFormattedError { * 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 }; + readonly extensions?: GraphQLFormattedErrorExtensions; } diff --git a/src/error/index.ts b/src/error/index.ts index ed9e24d241..17e9059dd1 100644 --- a/src/error/index.ts +++ b/src/error/index.ts @@ -3,6 +3,7 @@ export type { GraphQLErrorOptions, GraphQLFormattedError, GraphQLErrorExtensions, + GraphQLFormattedErrorExtensions, } from './GraphQLError.js'; export { syntaxError } from './syntaxError.js'; diff --git a/src/index.ts b/src/index.ts index aef9d75b16..040a38e7c4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -411,6 +411,7 @@ export type { GraphQLErrorOptions, GraphQLFormattedError, GraphQLErrorExtensions, + GraphQLFormattedErrorExtensions, } from './error/index.js'; // Utilities for operating on GraphQL type schema and parsed sources.