@@ -12,6 +12,7 @@ import {
1212} from 'graphql' ;
1313import { toGlobalId } from './globalId' ;
1414import type {
15+ Resolver ,
1516 ResolverMWArgsFn ,
1617 ResolverMWArgs ,
1718 ResolverMWResolveFn ,
@@ -21,11 +22,11 @@ import type {
2122} from './definition' ;
2223
2324export default class MutationMiddleware extends ResolverMiddleware {
24- // middleware has constructor
25- // constructor (typeComposer, typeResolver, opts = {}) {
26- // super(typeComposer, opts);
27- // // some setup staff
28- // }
25+ constructor ( typeComposer : TypeComposer , typeResolver : Resolver , opts : mixed = { } ) {
26+ super ( typeComposer , typeResolver , opts ) ;
27+
28+ this . isArgsWrapped = false ;
29+ }
2930
3031 args :ResolverMWArgs = ( next : ResolverMWArgsFn ) => ( args ) => {
3132 const nextArgs = next ( args ) ;
@@ -34,7 +35,6 @@ export default class MutationMiddleware extends ResolverMiddleware {
3435
3536 if ( nextArgs . input && nextArgs . input . type ) {
3637 // pass args unchanged
37- // $FlowFixMe
3838 inputTC = new InputTypeComposer ( getNamedType ( nextArgs . input . type ) ) ;
3939 newNextArgs = nextArgs ;
4040 } else {
@@ -49,6 +49,7 @@ export default class MutationMiddleware extends ResolverMiddleware {
4949 type : new GraphQLNonNull ( inputTC . getType ( ) ) ,
5050 } ,
5151 } ;
52+ this . isArgsWrapped = true ;
5253 }
5354
5455 // add `clientMutationId` to args.input field
@@ -74,6 +75,11 @@ export default class MutationMiddleware extends ResolverMiddleware {
7475 }
7576 }
7677
78+ if ( this . isArgsWrapped ) {
79+ // $FlowFixMe
80+ resolveParams . args = resolveParams . args . input ;
81+ }
82+
7783 return next ( resolveParams )
7884 . then ( res => {
7985 res . nodeId = toGlobalId (
0 commit comments