Skip to content

Commit 7eae7aa

Browse files
authored
Merge pull request #575 from graphql/more-context-type
Add TContext to type resolvers
2 parents d07127d + 6dbc12e commit 7eae7aa

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/type/definition.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ export type GraphQLScalarTypeConfig<TInternal, TExternal> = {
366366
export class GraphQLObjectType {
367367
name: string;
368368
description: ?string;
369-
isTypeOf: ?GraphQLIsTypeOfFn;
369+
isTypeOf: ?GraphQLIsTypeOfFn<*, *>;
370370

371371
_typeConfig: GraphQLObjectTypeConfig<*, *>;
372372
_fields: GraphQLFieldMap<*, *>;
@@ -511,19 +511,19 @@ export type GraphQLObjectTypeConfig<TSource, TContext> = {
511511
name: string;
512512
interfaces?: Thunk<?Array<GraphQLInterfaceType>>;
513513
fields: Thunk<GraphQLFieldConfigMap<TSource, TContext>>;
514-
isTypeOf?: ?GraphQLIsTypeOfFn;
514+
isTypeOf?: ?GraphQLIsTypeOfFn<TSource, TContext>;
515515
description?: ?string
516516
};
517517

518-
export type GraphQLTypeResolver = (
519-
value: mixed,
520-
context: mixed,
518+
export type GraphQLTypeResolver<TSource, TContext> = (
519+
value: TSource,
520+
context: TContext,
521521
info: GraphQLResolveInfo
522522
) => ?GraphQLObjectType | ?string;
523523

524-
export type GraphQLIsTypeOfFn = (
525-
source: mixed,
526-
context: mixed,
524+
export type GraphQLIsTypeOfFn<TSource, TContext> = (
525+
source: TSource,
526+
context: TContext,
527527
info: GraphQLResolveInfo
528528
) => boolean;
529529

@@ -615,7 +615,7 @@ export type GraphQLFieldMap<TSource, TContext> = {
615615
export class GraphQLInterfaceType {
616616
name: string;
617617
description: ?string;
618-
resolveType: ?GraphQLTypeResolver;
618+
resolveType: ?GraphQLTypeResolver<*, *>;
619619

620620
_typeConfig: GraphQLInterfaceTypeConfig<*, *>;
621621
_fields: GraphQLFieldMap<*, *>;
@@ -653,7 +653,7 @@ export type GraphQLInterfaceTypeConfig<TSource, TContext> = {
653653
* the default implementation will call `isTypeOf` on each implementing
654654
* Object type.
655655
*/
656-
resolveType?: ?GraphQLTypeResolver,
656+
resolveType?: ?GraphQLTypeResolver<TSource, TContext>,
657657
description?: ?string
658658
};
659659

@@ -685,13 +685,13 @@ export type GraphQLInterfaceTypeConfig<TSource, TContext> = {
685685
export class GraphQLUnionType {
686686
name: string;
687687
description: ?string;
688-
resolveType: ?GraphQLTypeResolver;
688+
resolveType: ?GraphQLTypeResolver<*, *>;
689689

690-
_typeConfig: GraphQLUnionTypeConfig;
690+
_typeConfig: GraphQLUnionTypeConfig<*, *>;
691691
_types: Array<GraphQLObjectType>;
692692
_possibleTypeNames: {[typeName: string]: boolean};
693693

694-
constructor(config: GraphQLUnionTypeConfig) {
694+
constructor(config: GraphQLUnionTypeConfig<*, *>) {
695695
invariant(config.name, 'Type must be named.');
696696
assertValidName(config.name);
697697
this.name = config.name;
@@ -748,15 +748,15 @@ function defineTypes(
748748
return types;
749749
}
750750

751-
export type GraphQLUnionTypeConfig = {
751+
export type GraphQLUnionTypeConfig<TSource, TContext> = {
752752
name: string,
753753
types: Thunk<Array<GraphQLObjectType>>,
754754
/**
755755
* Optionally provide a custom type resolver function. If one is not provided,
756756
* the default implementation will call `isTypeOf` on each implementing
757757
* Object type.
758758
*/
759-
resolveType?: ?GraphQLTypeResolver;
759+
resolveType?: ?GraphQLTypeResolver<TSource, TContext>;
760760
description?: ?string;
761761
};
762762

0 commit comments

Comments
 (0)