graphql-mocks
Version:
Tools for setting up graphql test resolvers
45 lines (31 loc) • 1.5 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
var isTypeReference = require('./is-type-reference.js');
var isFieldReference = require('./is-field-reference.js');
var getTypeForReference = require('./get-type-for-reference.js');
var getFieldForReference = require('./get-field-for-reference.js');
function validate(schema, reference) {
const referenceAsJSON = JSON.stringify(reference);
if (!isTypeReference.isTypeReference(reference) && !isFieldReference.isFieldReference(reference)) {
return new Error(`Reference ${referenceAsJSON} is not a valid type reference \`"TypeName"\` or valid field reference \`["TypeName", "fieldName"]\``);
}
if (isTypeReference.isTypeReference(reference) && !getTypeForReference.getTypeForReference(schema, reference)) {
return new Error(`Type Reference ${referenceAsJSON} could not be found in the GraphQLSchema`);
}
if (isFieldReference.isFieldReference(reference) && !getFieldForReference.getFieldForReference(schema, reference)) {
return new Error(`Field Reference ${referenceAsJSON} could not be found in the GraphQLSchema`);
}
return null;
}
class ValidationError extends Error {
constructor(errors) {
const mapped = errors.map(error => ` * ${error.message}`).join('\n');
const message = `References failed validation with errors:\n${mapped}`;
super(message);
}
}
exports.ValidationError = ValidationError;
exports.validate = validate;
//# sourceMappingURL=validate.js.map
;