Skip to content

Commit 0c66053

Browse files
Added new 'FormattedExecutionResult' type (#2688)
1 parent fb042fc commit 0c66053

File tree

6 files changed

+31
-2
lines changed

6 files changed

+31
-2
lines changed

src/execution/execute.d.ts

+11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { PromiseOrValue } from '../jsutils/PromiseOrValue';
44
import { Path } from '../jsutils/Path';
55

66
import { GraphQLError } from '../error/GraphQLError';
7+
import { GraphQLFormattedError } from '../error/formatError';
78

89
import {
910
DocumentNode,
@@ -55,6 +56,16 @@ export interface ExecutionResult<
5556
extensions?: TExtensions;
5657
}
5758

59+
export interface FormattedExecutionResult<
60+
TData = { [key: string]: any },
61+
TExtensions = { [key: string]: any }
62+
> {
63+
errors?: ReadonlyArray<GraphQLFormattedError>;
64+
// TS_SPECIFIC: TData. Motivation: https://github.com/graphql/graphql-js/pull/2490#issuecomment-639154229
65+
data?: TData | null;
66+
extensions?: TExtensions;
67+
}
68+
5869
export interface ExecutionArgs {
5970
schema: GraphQLSchema;
6071
document: DocumentNode;

src/execution/execute.js

+7
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import promiseReduce from '../jsutils/promiseReduce';
1616
import promiseForObject from '../jsutils/promiseForObject';
1717
import { addPath, pathToArray } from '../jsutils/Path';
1818

19+
import type { GraphQLFormattedError } from '../error/formatError';
1920
import { GraphQLError } from '../error/GraphQLError';
2021
import { locatedError } from '../error/locatedError';
2122

@@ -120,6 +121,12 @@ export type ExecutionResult = {|
120121
extensions?: ObjMap<mixed>,
121122
|};
122123

124+
export type FormattedExecutionResult = {|
125+
errors?: $ReadOnlyArray<GraphQLFormattedError>,
126+
data?: ObjMap<mixed> | null,
127+
extensions?: ObjMap<mixed>,
128+
|};
129+
123130
export type ExecutionArgs = {|
124131
schema: GraphQLSchema,
125132
document: DocumentNode,

src/execution/index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export {
77
defaultTypeResolver,
88
ExecutionArgs,
99
ExecutionResult,
10+
FormattedExecutionResult,
1011
} from './execute';
1112

1213
export { getDirectiveValues } from './values';

src/execution/index.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ export {
88
defaultFieldResolver,
99
defaultTypeResolver,
1010
} from './execute';
11-
export type { ExecutionArgs, ExecutionResult } from './execute';
11+
12+
export type {
13+
ExecutionArgs,
14+
ExecutionResult,
15+
FormattedExecutionResult,
16+
} from './execute';
1217

1318
export { getDirectiveValues } from './values';

src/index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ export {
299299
getDirectiveValues,
300300
ExecutionArgs,
301301
ExecutionResult,
302+
FormattedExecutionResult,
302303
} from './execution/index';
303304

304305
export {

src/index.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,11 @@ export {
288288
getDirectiveValues,
289289
} from './execution/index';
290290

291-
export type { ExecutionArgs, ExecutionResult } from './execution/index';
291+
export type {
292+
ExecutionArgs,
293+
ExecutionResult,
294+
FormattedExecutionResult,
295+
} from './execution/index';
292296

293297
export { subscribe, createSourceEventStream } from './subscription/index';
294298
export type { SubscriptionArgs } from './subscription/index';

0 commit comments

Comments
 (0)