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