diff --git a/src/query/callsFromGraphQL.js b/src/query/callsFromGraphQL.js index a175260a49fab..73aaaadac51cd 100644 --- a/src/query/callsFromGraphQL.js +++ b/src/query/callsFromGraphQL.js @@ -26,6 +26,7 @@ const invariant = require('invariant'); type CallOrDirective = { name: string, value: ?ConcreteValue, + type?: ?string, }; /** @@ -43,6 +44,7 @@ function callsFromGraphQL( for (let ii = 0; ii < callsOrDirectives.length; ii++) { const callOrDirective = callsOrDirectives[ii]; let {value} = callOrDirective; + let {type} = callOrDirective.metadata; if (value != null) { if (Array.isArray(value)) { value = value.map(arg => getCallValue(arg, variables)); @@ -53,7 +55,7 @@ function callsFromGraphQL( value = getCallValue(value, variables); } } - orderedCalls.push({name: callOrDirective.name, value}); + orderedCalls.push({name: callOrDirective.name, value, type}); } return orderedCalls; } diff --git a/src/query/callsToGraphQL.js b/src/query/callsToGraphQL.js index e029d24884588..2c331812cf91f 100644 --- a/src/query/callsToGraphQL.js +++ b/src/query/callsToGraphQL.js @@ -22,14 +22,14 @@ const QueryBuilder = require('QueryBuilder'); * Convert from plain object `{name, value}` calls to GraphQL call nodes. */ function callsToGraphQL(calls: Array): Array { - return calls.map(({name, value}) => { + return calls.map(({name, value, type}) => { let concreteValue = null; if (Array.isArray(value)) { concreteValue = value.map(QueryBuilder.createCallValue); } else if (value != null) { concreteValue = QueryBuilder.createCallValue(value); } - return QueryBuilder.createCall(name, concreteValue); + return QueryBuilder.createCall(name, concreteValue, type); }); }