graphql-tools
Advanced tools
Comparing version 2.0.0-alpha.15 to 2.0.0-alpha.16
@@ -46,4 +46,4 @@ "use strict"; | ||
var queries = queryType.getFields(); | ||
var queryResolvers = lodash_1.mapValues(queries, function (field, key) { | ||
return createResolver(fetcher, key); | ||
var queryResolvers = lodash_1.mapValues(queries, function () { | ||
return createResolver(fetcher); | ||
}); | ||
@@ -54,5 +54,3 @@ var mutationResolvers = {}; | ||
var mutations = mutationType.getFields(); | ||
mutationResolvers = lodash_1.mapValues(mutations, function (field, key) { | ||
return createResolver(fetcher, key); | ||
}); | ||
mutationResolvers = lodash_1.mapValues(mutations, function () { return createResolver(fetcher); }); | ||
} | ||
@@ -80,16 +78,3 @@ var resolvers = (_a = {}, _a[queryType.name] = queryResolvers, _a); | ||
type === graphql_2.GraphQLInt)) { | ||
var fakeScalar = new graphql_2.GraphQLScalarType({ | ||
name: type.name, | ||
description: type.description, | ||
serialize: function (value) { | ||
return graphql_2.GraphQLString.serialize(value); | ||
}, | ||
parseValue: function (value) { | ||
return graphql_2.GraphQLString.parseValue(value); | ||
}, | ||
parseLiteral: function (ast) { | ||
return graphql_2.GraphQLString.parseLiteral(ast); | ||
}, | ||
}); | ||
resolvers[type.name] = fakeScalar; | ||
resolvers[type.name] = createPassThroughScalar(type); | ||
} | ||
@@ -106,6 +91,6 @@ } | ||
exports.default = addSimpleRoutingResolvers; | ||
function createResolver(fetcher, name) { | ||
function createResolver(fetcher) { | ||
var _this = this; | ||
return function (root, args, context, info) { return __awaiter(_this, void 0, void 0, function () { | ||
var operation, fragments, query, result, errorMessage; | ||
var operation, fragments, query, result, fieldName, errorMessage; | ||
return __generator(this, function (_a) { | ||
@@ -126,3 +111,6 @@ switch (_a.label) { | ||
result = _a.sent(); | ||
if (result.errors || !result.data[name]) { | ||
fieldName = info.fieldNodes[0].alias | ||
? info.fieldNodes[0].alias.value | ||
: info.fieldName; | ||
if (result.errors || !result.data[fieldName]) { | ||
errorMessage = result.errors.map(function (error) { return error.message; }).join('\n'); | ||
@@ -132,3 +120,3 @@ throw new Error(errorMessage); | ||
else { | ||
return [2 /*return*/, result.data[name]]; | ||
return [2 /*return*/, result.data[fieldName]]; | ||
} | ||
@@ -140,2 +128,42 @@ return [2 /*return*/]; | ||
} | ||
function createPassThroughScalar(_a) { | ||
var name = _a.name, description = _a.description; | ||
return new graphql_2.GraphQLScalarType({ | ||
name: name, | ||
description: description, | ||
serialize: function (value) { | ||
return value; | ||
}, | ||
parseValue: function (value) { | ||
return value; | ||
}, | ||
parseLiteral: function (ast) { | ||
return parseLiteral(ast); | ||
}, | ||
}); | ||
} | ||
function parseLiteral(ast) { | ||
switch (ast.kind) { | ||
case graphql_1.Kind.STRING: | ||
case graphql_1.Kind.BOOLEAN: { | ||
return ast.value; | ||
} | ||
case graphql_1.Kind.INT: | ||
case graphql_1.Kind.FLOAT: { | ||
return parseFloat(ast.value); | ||
} | ||
case graphql_1.Kind.OBJECT: { | ||
var value_1 = Object.create(null); | ||
ast.fields.forEach(function (field) { | ||
value_1[field.name.value] = parseLiteral(field.value); | ||
}); | ||
return value_1; | ||
} | ||
case graphql_1.Kind.LIST: { | ||
return ast.values.map(parseLiteral); | ||
} | ||
default: | ||
return null; | ||
} | ||
} | ||
//# sourceMappingURL=addSimpleRoutingResolvers.js.map |
@@ -303,4 +303,2 @@ "use strict"; | ||
var rootField = type.getFields()[rootFieldName]; | ||
var requiredArgs = rootField.args.filter(function (arg) { return arg.type instanceof graphql_1.GraphQLNonNull; }); | ||
var requiredArgMap = lodash_1.keyBy(requiredArgs, function (arg) { return arg.name; }); | ||
var newVariables = []; | ||
@@ -312,3 +310,3 @@ var rootSelectionSet = { | ||
if (selection.kind === graphql_1.Kind.FIELD) { | ||
var _a = processRootField(selection, rootFieldName, requiredArgs), newSelection = _a.selection, variables = _a.variables; | ||
var _a = processRootField(selection, rootFieldName, rootField), newSelection = _a.selection, variables = _a.variables; | ||
newVariables.push.apply(newVariables, variables); | ||
@@ -324,3 +322,3 @@ return newSelection; | ||
var arg = _a.arg, variable = _a.variable; | ||
var argDef = requiredArgMap[arg]; | ||
var argDef = rootField.args.find(function (rootArg) { return rootArg.name === arg; }); | ||
if (!argDef) { | ||
@@ -358,6 +356,6 @@ throw new Error('Unexpected missing arg'); | ||
} | ||
function processRootField(selection, rootFieldName, requiredArgs) { | ||
function processRootField(selection, rootFieldName, rootField) { | ||
var existingArguments = selection.arguments || []; | ||
var existingArgumentNames = existingArguments.map(function (arg) { return arg.name.value; }); | ||
var missingArgumentNames = lodash_1.difference(requiredArgs.map(function (arg) { return arg.name; }), existingArgumentNames); | ||
var missingArgumentNames = lodash_1.difference(rootField.args.map(function (arg) { return arg.name; }), existingArgumentNames); | ||
var variables = []; | ||
@@ -364,0 +362,0 @@ var missingArguments = missingArgumentNames.map(function (name) { |
{ | ||
"name": "graphql-tools", | ||
"version": "2.0.0-alpha.15", | ||
"version": "2.0.0-alpha.16", | ||
"description": "A set of useful tools for GraphQL", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
162351
1910