Skip to content

Commit c9af2d1

Browse files
committed
Merge branch 'master' into tgriesser/feat/894-context-lifecycle-subscription
* master: TS: remove TS-specific TSource argument for resolveFieldValueOr… (graphql#2491) TS: remove TS-specific TData from ExecutionResult (graphql#2490) TS(definition): remove TS-specific TArgs (graphql#2488)
2 parents f759882 + 157edcb commit c9af2d1

File tree

4 files changed

+43
-94
lines changed

4 files changed

+43
-94
lines changed

src/execution/execute.d.ts

Lines changed: 15 additions & 19 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
@@ -141,15 +134,18 @@ export function buildResolveInfo(
141134
path: Path,
142135
): GraphQLResolveInfo;
143136

144-
// Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
145-
// function. Returns the result of resolveFn or the abrupt-return Error object.
146-
// TS_SPECIFIC: TSource
147-
export function resolveFieldValueOrError<TSource>(
137+
/**
138+
* Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
139+
* function. Returns the result of resolveFn or the abrupt-return Error object.
140+
*
141+
* @internal
142+
*/
143+
export function resolveFieldValueOrError(
148144
exeContext: ExecutionContext,
149-
fieldDef: GraphQLField<TSource, any>,
145+
fieldDef: GraphQLField<any, any>,
150146
fieldNodes: ReadonlyArray<FieldNode>,
151-
resolveFn: GraphQLFieldResolver<TSource, any>,
152-
source: TSource,
147+
resolveFn: GraphQLFieldResolver<any, any>,
148+
source: any,
153149
info: GraphQLResolveInfo,
154150
): Error | any;
155151

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

@@ -42,13 +39,11 @@ export interface SubscriptionArgs {
4239
*
4340
* Accepts either an object with named arguments, or individual arguments.
4441
*/
45-
export function subscribe<TData = ExecutionResultDataDefault>(
42+
export function subscribe(
4643
args: SubscriptionArgs,
47-
): Promise<
48-
AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
49-
>;
44+
): Promise<AsyncIterableIterator<ExecutionResult> | ExecutionResult>;
5045

51-
export function subscribe<TData = ExecutionResultDataDefault>(
46+
export function subscribe(
5247
schema: GraphQLSchema,
5348
document: DocumentNode,
5449
rootValue?: any,
@@ -58,9 +53,7 @@ export function subscribe<TData = ExecutionResultDataDefault>(
5853
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
5954
subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
6055
perEventContextResolver?: Maybe<(contextValue: any) => any>,
61-
): Promise<
62-
AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
63-
>;
56+
): Promise<AsyncIterableIterator<ExecutionResult> | ExecutionResult>;
6457

6558
/**
6659
* Implements the "CreateSourceEventStream" algorithm described in the
@@ -80,12 +73,12 @@ export function subscribe<TData = ExecutionResultDataDefault>(
8073
* or otherwise separating these two steps. For more on this, see the
8174
* "Supporting Subscriptions at Scale" information in the GraphQL specification.
8275
*/
83-
export function createSourceEventStream<TData = ExecutionResultDataDefault>(
76+
export function createSourceEventStream(
8477
schema: GraphQLSchema,
8578
document: DocumentNode,
8679
rootValue?: any,
8780
contextValue?: any,
8881
variableValues?: { [key: string]: any },
8982
operationName?: Maybe<string>,
9083
fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
91-
): Promise<AsyncIterable<any> | ExecutionResult<TData>>;
84+
): Promise<AsyncIterable<any> | ExecutionResult>;

src/type/definition.d.ts

Lines changed: 14 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -375,23 +375,17 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
375375
* });
376376
*
377377
*/
378-
export class GraphQLObjectType<
379-
TSource = any,
380-
TContext = any,
381-
TArgs = { [key: string]: any }
382-
> {
378+
export class GraphQLObjectType<TSource = any, TContext = any> {
383379
name: string;
384380
description: Maybe<string>;
385381
isTypeOf: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
386382
extensions: Maybe<Readonly<Record<string, any>>>;
387383
astNode: Maybe<ObjectTypeDefinitionNode>;
388384
extensionASTNodes: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
389385

390-
constructor(
391-
config: Readonly<GraphQLObjectTypeConfig<TSource, TContext, TArgs>>,
392-
);
386+
constructor(config: Readonly<GraphQLObjectTypeConfig<TSource, TContext>>);
393387

394-
getFields(): GraphQLFieldMap<any, TContext, TArgs>;
388+
getFields(): GraphQLFieldMap<any, TContext>;
395389
getInterfaces(): Array<GraphQLInterfaceType>;
396390

397391
toConfig(): GraphQLObjectTypeConfig<any, any> & {
@@ -410,35 +404,23 @@ export function argsToArgsConfig(
410404
args: ReadonlyArray<GraphQLArgument>,
411405
): GraphQLFieldConfigArgumentMap;
412406

413-
// TS_SPECIFIC: TArgs
414-
export interface GraphQLObjectTypeConfig<
415-
TSource,
416-
TContext,
417-
TArgs = { [key: string]: any }
418-
> {
407+
export interface GraphQLObjectTypeConfig<TSource, TContext> {
419408
name: string;
420409
description?: Maybe<string>;
421410
interfaces?: Thunk<Maybe<Array<GraphQLInterfaceType>>>;
422-
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
411+
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext>>;
423412
isTypeOf?: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
424413
extensions?: Maybe<Readonly<Record<string, any>>>;
425414
astNode?: Maybe<ObjectTypeDefinitionNode>;
426415
extensionASTNodes?: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
427416
}
428417

429-
// TS_SPECIFIC: TArgs
430-
export type GraphQLTypeResolver<
431-
TSource,
432-
TContext,
433-
TArgs = { [key: string]: any }
434-
> = (
418+
export type GraphQLTypeResolver<TSource, TContext> = (
435419
value: TSource,
436420
context: TContext,
437421
info: GraphQLResolveInfo,
438422
abstractType: GraphQLAbstractType,
439-
) => PromiseOrValue<
440-
Maybe<GraphQLObjectType<TSource, TContext, TArgs> | string>
441-
>;
423+
) => PromiseOrValue<Maybe<GraphQLObjectType<TSource, TContext> | string>>;
442424

443425
export type GraphQLIsTypeOfFn<TSource, TContext> = (
444426
source: TSource,
@@ -497,13 +479,8 @@ export interface GraphQLArgumentConfig {
497479
astNode?: Maybe<InputValueDefinitionNode>;
498480
}
499481

500-
// TS_SPECIFIC: TArgs
501-
export type GraphQLFieldConfigMap<
502-
TSource,
503-
TContext,
504-
TArgs = { [key: string]: any }
505-
> = {
506-
[key: string]: GraphQLFieldConfig<TSource, TContext, TArgs>;
482+
export type GraphQLFieldConfigMap<TSource, TContext> = {
483+
[key: string]: GraphQLFieldConfig<TSource, TContext>;
507484
};
508485

509486
export interface GraphQLField<
@@ -534,13 +511,8 @@ export interface GraphQLArgument {
534511

535512
export function isRequiredArgument(arg: GraphQLArgument): boolean;
536513

537-
// TS_SPECIFIC: TArgs
538-
export type GraphQLFieldMap<
539-
TSource,
540-
TContext,
541-
TArgs = { [key: string]: any }
542-
> = {
543-
[key: string]: GraphQLField<TSource, TContext, TArgs>;
514+
export type GraphQLFieldMap<TSource, TContext> = {
515+
[key: string]: GraphQLField<TSource, TContext>;
544516
};
545517

546518
/**
@@ -585,22 +557,17 @@ export class GraphQLInterfaceType {
585557
inspect(): string;
586558
}
587559

588-
// TS_SPECIFIC: TArgs
589-
export interface GraphQLInterfaceTypeConfig<
590-
TSource,
591-
TContext,
592-
TArgs = { [key: string]: any }
593-
> {
560+
export interface GraphQLInterfaceTypeConfig<TSource, TContext> {
594561
name: string;
595562
description?: Maybe<string>;
596563
interfaces?: Thunk<Maybe<Array<GraphQLInterfaceType>>>;
597-
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
564+
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext>>;
598565
/**
599566
* Optionally provide a custom type resolver function. If one is not provided,
600567
* the default implementation will call `isTypeOf` on each implementing
601568
* Object type.
602569
*/
603-
resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext, TArgs>>;
570+
resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext>>;
604571
extensions?: Maybe<Readonly<Record<string, any>>>;
605572
astNode?: Maybe<InterfaceTypeDefinitionNode>;
606573
extensionASTNodes?: Maybe<ReadonlyArray<InterfaceTypeExtensionNode>>;

0 commit comments

Comments
 (0)