Skip to content

Commit 3ab90f8

Browse files
committed
Merge pull request #310 from JeffRMoore/resolve-fn-types
Add named type for user defined resolveType and isTypeOf functions
2 parents fdafe32 + 9920d8a commit 3ab90f8

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/type/definition.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ export type GraphQLScalarTypeConfig<InternalType> = {
302302
export class GraphQLObjectType {
303303
name: string;
304304
description: ?string;
305-
isTypeOf: ?(value: mixed, info?: GraphQLResolveInfo) => boolean;
305+
isTypeOf: ?GraphQLIsTypeOfFn;
306306

307307
_typeConfig: GraphQLObjectTypeConfig;
308308
_fields: GraphQLFieldDefinitionMap;
@@ -460,14 +460,24 @@ export type GraphQLObjectTypeConfig = {
460460
name: string;
461461
interfaces?: GraphQLInterfacesThunk | Array<GraphQLInterfaceType>;
462462
fields: GraphQLFieldConfigMapThunk | GraphQLFieldConfigMap;
463-
isTypeOf?: (value: mixed, info?: GraphQLResolveInfo) => boolean;
463+
isTypeOf?: GraphQLIsTypeOfFn;
464464
description?: ?string
465465
}
466466

467467
type GraphQLInterfacesThunk = () => Array<GraphQLInterfaceType>;
468468

469469
type GraphQLFieldConfigMapThunk = () => GraphQLFieldConfigMap;
470470

471+
export type GraphQLTypeResolveFn = (
472+
value: mixed,
473+
info?: GraphQLResolveInfo
474+
) => ?GraphQLObjectType
475+
476+
export type GraphQLIsTypeOfFn = (
477+
value: mixed,
478+
info?: GraphQLResolveInfo
479+
) => boolean
480+
471481
export type GraphQLFieldResolveFn = (
472482
source: mixed,
473483
args: {[argName: string]: mixed},
@@ -551,7 +561,7 @@ export type GraphQLFieldDefinitionMap = {
551561
export class GraphQLInterfaceType {
552562
name: string;
553563
description: ?string;
554-
resolveType: ?(value: mixed, info?: GraphQLResolveInfo) => ?GraphQLObjectType;
564+
resolveType: ?GraphQLTypeResolveFn;
555565

556566
_typeConfig: GraphQLInterfaceTypeConfig;
557567
_fields: GraphQLFieldDefinitionMap;
@@ -622,7 +632,7 @@ export type GraphQLInterfaceTypeConfig = {
622632
* the default implementation will call `isTypeOf` on each implementing
623633
* Object type.
624634
*/
625-
resolveType?: (value: mixed, info?: GraphQLResolveInfo) => ?GraphQLObjectType,
635+
resolveType?: GraphQLTypeResolveFn,
626636
description?: ?string
627637
};
628638

@@ -654,7 +664,7 @@ export type GraphQLInterfaceTypeConfig = {
654664
export class GraphQLUnionType {
655665
name: string;
656666
description: ?string;
657-
resolveType: ?(value: mixed, info?: GraphQLResolveInfo) => ?GraphQLObjectType;
667+
resolveType: ?GraphQLTypeResolveFn;
658668

659669
_typeConfig: GraphQLUnionTypeConfig;
660670
_types: Array<GraphQLObjectType>;
@@ -729,7 +739,7 @@ export type GraphQLUnionTypeConfig = {
729739
* the default implementation will call `isTypeOf` on each implementing
730740
* Object type.
731741
*/
732-
resolveType?: (value: mixed, info?: GraphQLResolveInfo) => ?GraphQLObjectType;
742+
resolveType?: GraphQLTypeResolveFn;
733743
description?: ?string;
734744
};
735745

0 commit comments

Comments
 (0)