blips
Version:
State management for the GraphQL heads
31 lines (22 loc) • 912 B
JavaScript
import { getOperationASTs } from './getOperationASTs';
import { loneAnonymousOperation, uniqueFragmentNames, singleFieldSubscriptions } from './rules';
export function validateWithoutSchema(document) {
var operationCount = getOperationASTs(document).length;
var knownFragmentNames = Object.create(null);
var errors = [];
for (var _iterator = document.definitions, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var node = _ref;
var err = loneAnonymousOperation(node, operationCount) || uniqueFragmentNames(node, knownFragmentNames) || singleFieldSubscriptions(node);
err && errors.push(err);
}
return errors;
}