44import { GraphQLID , GraphQLNonNull } from 'graphql' ;
55import { TypeComposer } from 'graphql-compose' ;
66import NodeInterface from './nodeInterface' ;
7- import MutationMiddleware from './mutationMiddleware ' ;
7+ import wrapMutationResolver from './wrapMutationResolver ' ;
88import { toGlobalId } from './globalId' ;
99import { getNodeFieldConfig } from './nodeFieldConfig' ;
1010
1111// all wrapped typeComposers with Relay, stored in this variable
1212// for futher type resolving via NodeInterface.resolveType method
13- export const typeComposerMap = { } ;
14- export const nodeFieldConfig = getNodeFieldConfig ( typeComposerMap ) ;
13+ export const typeMapForNode = { } ;
14+ export const nodeFieldConfig = getNodeFieldConfig ( typeMapForNode ) ;
1515
1616export function composeWithRelay (
1717 typeComposer : TypeComposer
@@ -20,12 +20,12 @@ export function composeWithRelay(
2020 throw new Error ( 'You should provide TypeComposer instance to composeWithRelay method' ) ;
2121 }
2222
23- if ( typeComposer . getTypeName ( ) === 'RootQuery' ) {
23+ if ( typeComposer . getTypeName ( ) === 'Query' || typeComposer . getTypeName ( ) === ' RootQuery') {
2424 typeComposer . addField ( 'node' , nodeFieldConfig ) ;
2525 return typeComposer ;
2626 }
2727
28- if ( typeComposer . getTypeName ( ) === 'RootMutation' ) {
28+ if ( typeComposer . getTypeName ( ) === 'Mutation' || typeComposer . getTypeName ( ) === ' RootMutation') {
2929 // just skip
3030 return typeComposer ;
3131 }
@@ -40,7 +40,10 @@ export function composeWithRelay(
4040 throw new Error ( `TypeComposer(${ typeComposer . getTypeName ( ) } ) provided to composeWithRelay `
4141 + 'should have findById resolver.' ) ;
4242 }
43- typeComposerMap [ typeComposer . getTypeName ( ) ] = findById ;
43+ typeMapForNode [ typeComposer . getTypeName ( ) ] = {
44+ resolver : findById ,
45+ tc : typeComposer ,
46+ } ;
4447
4548 typeComposer . addFields ( {
4649 id : {
@@ -55,9 +58,13 @@ export function composeWithRelay(
5558
5659 typeComposer . addInterface ( NodeInterface ) ;
5760
58- typeComposer . getResolvers ( ) . forEach ( resolver => {
61+ typeComposer . getResolvers ( ) . forEach ( ( resolver , resolverName ) => {
5962 if ( resolver . kind === 'mutation' ) {
60- resolver . addMiddleware ( new MutationMiddleware ( typeComposer , resolver ) ) ;
63+ const wrappedResolver = wrapMutationResolver ( resolver , {
64+ resolverName,
65+ rootTypeName : typeComposer . getTypeName ( ) ,
66+ } ) ;
67+ typeComposer . setResolver ( resolverName , wrappedResolver ) ;
6168 }
6269 } ) ;
6370
0 commit comments