UNPKG

graphql-paper

Version:

A flexible in-memory store based on a GraphQL Schema

29 lines (27 loc) 1.1 kB
'use strict'; var graphql = require('graphql'); var nullDocument = require('../../document/null-document.js'); var fieldReturnTypeMismatch = require('../errors/field-return-type-mismatch.js'); const nonNullFieldValidator = { skipConnectionValue: false, skipNullValue: false, validate({ field, fieldValue, fieldConnections: connections }) { if (graphql.isNonNullType(field.type)) { const hasConnectedNullDocument = (connections === null || connections === void 0 ? void 0 : connections.length) === 1 && (connections === null || connections === void 0 ? void 0 : connections.includes(nullDocument.key)); const actual = hasConnectedNullDocument ? 'null document' : fieldValue === undefined ? 'undefined' : 'null'; if (fieldValue == null && (hasConnectedNullDocument || !connections)) { throw new fieldReturnTypeMismatch.FieldReturnTypeMismatch({ field: field, expected: 'non-null', actual }); } } } }; exports.nonNullFieldValidator = nonNullFieldValidator; //# sourceMappingURL=non-null-field.js.map