graphql-paper
Version:
A flexible in-memory store based on a GraphQL Schema
41 lines (39 loc) • 1.13 kB
JavaScript
;
var getConnections = require('../document/get-connections.js');
const validateField = fieldValidators => {
return {
validate({
graphqlSchema,
type,
document,
store
}) {
const graphqlTypeFields = type.getFields();
for (const fieldName in graphqlTypeFields) {
const field = graphqlTypeFields[fieldName];
const fieldValue = document[fieldName];
const connectionValue = getConnections.getConnections(document)[fieldName];
fieldValidators.forEach(fieldValidator => {
if (fieldValidator.skipConnectionValue && connectionValue) {
return;
}
if (fieldValidator.skipNullValue && fieldValue == null) {
return;
}
fieldValidator.validate({
type,
field,
document,
fieldName: field.name,
fieldValue,
fieldConnections: connectionValue,
graphqlSchema,
store
});
});
}
}
};
};
exports.validateField = validateField;
//# sourceMappingURL=validate-field.js.map