Skip to content

Commit aa4f85e

Browse files
TS: remove TS-specific TData from ExecutionResult (#2490)
Reverts DefinitelyTyped/DefinitelyTyped#26763 Since we can't gurantee that response match types it was basically glorified type cast.
1 parent 95ad968 commit aa4f85e

File tree

3 files changed

+19
-40
lines changed

3 files changed

+19
-40
lines changed

src/execution/execute.d.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,15 @@ export interface ExecutionContext {
3737
errors: Array<GraphQLError>;
3838
}
3939

40-
export interface ExecutionResultDataDefault {
41-
[key: string]: any;
42-
}
43-
4440
/**
4541
* The result of GraphQL execution.
4642
*
4743
* - `errors` is included when any errors occurred as a non-empty array.
4844
* - `data` is the result of a successful execution of the query.
4945
*/
50-
// TS_SPECIFIC: TData and ExecutionResultDataDefault
51-
export interface ExecutionResult<TData = ExecutionResultDataDefault> {
46+
export interface ExecutionResult {
5247
errors?: ReadonlyArray<GraphQLError>;
53-
data?: TData | null;
48+
data?: { [key: string]: any } | null;
5449
}
5550

5651
export type ExecutionArgs = {
@@ -76,10 +71,8 @@ export type ExecutionArgs = {
7671
*
7772
* Accepts either an object with named arguments, or individual arguments.
7873
*/
79-
export function execute<TData = ExecutionResultDataDefault>(
80-
args: ExecutionArgs,
81-
): PromiseOrValue<ExecutionResult<TData>>;
82-
export function execute<TData = ExecutionResultDataDefault>(
74+
export function execute(args: ExecutionArgs): PromiseOrValue<ExecutionResult>;
75+
export function execute(
8376
schema: GraphQLSchema,
8477
document: DocumentNode,
8578
rootValue?: any,
@@ -88,7 +81,7 @@ export function execute<TData = ExecutionResultDataDefault>(
8881
operationName?: Maybe<string>,
8982
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
9083
typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
91-
): PromiseOrValue<ExecutionResult<TData>>;
84+
): PromiseOrValue<ExecutionResult>;
9285

9386
/**
9487
* Essential assertions before executing to provide developer feedback for

src/graphql.d.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import Maybe from './tsutils/Maybe';
22
import { Source } from './language/source';
33
import { GraphQLSchema } from './type/schema';
44
import { GraphQLFieldResolver, GraphQLTypeResolver } from './type/definition';
5-
import {
6-
ExecutionResult,
7-
ExecutionResultDataDefault,
8-
} from './execution/execute';
5+
import { ExecutionResult } from './execution/execute';
96

107
/**
118
* This is the primary entry point function for fulfilling GraphQL operations
@@ -53,10 +50,8 @@ export interface GraphQLArgs {
5350
typeResolver?: Maybe<GraphQLTypeResolver<any, any>>;
5451
}
5552

56-
export function graphql<TData = ExecutionResultDataDefault>(
57-
args: GraphQLArgs,
58-
): Promise<ExecutionResult<TData>>;
59-
export function graphql<TData = ExecutionResultDataDefault>(
53+
export function graphql(args: GraphQLArgs): Promise<ExecutionResult>;
54+
export function graphql(
6055
schema: GraphQLSchema,
6156
source: Source | string,
6257
rootValue?: any,
@@ -65,18 +60,16 @@ export function graphql<TData = ExecutionResultDataDefault>(
6560
operationName?: Maybe<string>,
6661
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
6762
typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
68-
): Promise<ExecutionResult<TData>>;
63+
): Promise<ExecutionResult>;
6964

7065
/**
7166
* The graphqlSync function also fulfills GraphQL operations by parsing,
7267
* validating, and executing a GraphQL document along side a GraphQL schema.
7368
* However, it guarantees to complete synchronously (or throw an error) assuming
7469
* that all field resolvers are also synchronous.
7570
*/
76-
export function graphqlSync<TData = ExecutionResultDataDefault>(
77-
args: GraphQLArgs,
78-
): ExecutionResult<TData>;
79-
export function graphqlSync<TData = ExecutionResultDataDefault>(
71+
export function graphqlSync(args: GraphQLArgs): ExecutionResult;
72+
export function graphqlSync(
8073
schema: GraphQLSchema,
8174
source: Source | string,
8275
rootValue?: any,
@@ -85,4 +78,4 @@ export function graphqlSync<TData = ExecutionResultDataDefault>(
8578
operationName?: Maybe<string>,
8679
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
8780
typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
88-
): ExecutionResult<TData>;
81+
): ExecutionResult;

src/subscription/subscribe.d.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import Maybe from '../tsutils/Maybe';
22
import { DocumentNode } from '../language/ast';
3-
import {
4-
ExecutionResult,
5-
ExecutionResultDataDefault,
6-
} from '../execution/execute';
3+
import { ExecutionResult } from '../execution/execute';
74
import { GraphQLSchema } from '../type/schema';
85
import { GraphQLFieldResolver } from '../type/definition';
96

@@ -38,13 +35,11 @@ export interface SubscriptionArgs {
3835
*
3936
* Accepts either an object with named arguments, or individual arguments.
4037
*/
41-
export function subscribe<TData = ExecutionResultDataDefault>(
38+
export function subscribe(
4239
args: SubscriptionArgs,
43-
): Promise<
44-
AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
45-
>;
40+
): Promise<AsyncIterableIterator<ExecutionResult> | ExecutionResult>;
4641

47-
export function subscribe<TData = ExecutionResultDataDefault>(
42+
export function subscribe(
4843
schema: GraphQLSchema,
4944
document: DocumentNode,
5045
rootValue?: any,
@@ -53,9 +48,7 @@ export function subscribe<TData = ExecutionResultDataDefault>(
5348
operationName?: Maybe<string>,
5449
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
5550
subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
56-
): Promise<
57-
AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
58-
>;
51+
): Promise<AsyncIterableIterator<ExecutionResult> | ExecutionResult>;
5952

6053
/**
6154
* Implements the "CreateSourceEventStream" algorithm described in the
@@ -75,12 +68,12 @@ export function subscribe<TData = ExecutionResultDataDefault>(
7568
* or otherwise separating these two steps. For more on this, see the
7669
* "Supporting Subscriptions at Scale" information in the GraphQL specification.
7770
*/
78-
export function createSourceEventStream<TData = ExecutionResultDataDefault>(
71+
export function createSourceEventStream(
7972
schema: GraphQLSchema,
8073
document: DocumentNode,
8174
rootValue?: any,
8275
contextValue?: any,
8376
variableValues?: { [key: string]: any },
8477
operationName?: Maybe<string>,
8578
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
86-
): Promise<AsyncIterable<any> | ExecutionResult<TData>>;
79+
): Promise<AsyncIterable<any> | ExecutionResult>;

0 commit comments

Comments
 (0)