55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.createVariableNameGenerator = exports.updateArgument = void 0;
|
|
const graphql_1 = require("graphql");
|
|
const astFromType_js_1 = require("./astFromType.js");
|
|
function updateArgument(argumentNodes, variableDefinitionsMap, variableValues, argName, varName, type, value) {
|
|
argumentNodes[argName] = {
|
|
kind: graphql_1.Kind.ARGUMENT,
|
|
name: {
|
|
kind: graphql_1.Kind.NAME,
|
|
value: argName,
|
|
},
|
|
value: {
|
|
kind: graphql_1.Kind.VARIABLE,
|
|
name: {
|
|
kind: graphql_1.Kind.NAME,
|
|
value: varName,
|
|
},
|
|
},
|
|
};
|
|
variableDefinitionsMap[varName] = {
|
|
kind: graphql_1.Kind.VARIABLE_DEFINITION,
|
|
variable: {
|
|
kind: graphql_1.Kind.VARIABLE,
|
|
name: {
|
|
kind: graphql_1.Kind.NAME,
|
|
value: varName,
|
|
},
|
|
},
|
|
type: (0, astFromType_js_1.astFromType)(type),
|
|
};
|
|
if (value !== undefined) {
|
|
variableValues[varName] = value;
|
|
return;
|
|
}
|
|
// including the variable in the map with value of `undefined`
|
|
// will actually be translated by graphql-js into `null`
|
|
// see https://github.com/graphql/graphql-js/issues/2533
|
|
if (varName in variableValues) {
|
|
delete variableValues[varName];
|
|
}
|
|
}
|
|
exports.updateArgument = updateArgument;
|
|
function createVariableNameGenerator(variableDefinitionMap) {
|
|
let varCounter = 0;
|
|
return (argName) => {
|
|
let varName;
|
|
do {
|
|
varName = `_v${(varCounter++).toString()}_${argName}`;
|
|
} while (varName in variableDefinitionMap);
|
|
return varName;
|
|
};
|
|
}
|
|
exports.createVariableNameGenerator = createVariableNameGenerator;
|