UNPKG

graphql-mocks

Version:

Tools for setting up graphql test resolvers

85 lines (84 loc) 3.13 kB
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import { isInterfaceType, isObjectType } from 'graphql'; import { HIGHLIGHT_ALL, HIGHLIGHT_ROOT_QUERY, HIGHLIGHT_ROOT_MUTATION } from './constants.mjs'; class FieldHighlighter { constructor(targets) { _defineProperty(this, "targets", void 0); if (targets.length === 0) { targets = [[HIGHLIGHT_ALL, HIGHLIGHT_ALL]]; } this.targets = targets; } mark(schema) { return FieldHighlighter.expandTargets(schema, this.targets); } static expandTargets(schema, targets) { var fieldReferences = []; for (var target of targets) { var fr = FieldHighlighter.expandTarget(schema, target); for (var fieldReference of fr) { fieldReferences.push(fieldReference); } } return fieldReferences; } static expandTarget(schema, _ref) { var _type2; var [typeTarget, fieldTarget] = _ref; if (typeTarget === HIGHLIGHT_ALL) { var references = []; var types = schema.getTypeMap(); for (var typeName in types) { if (typeName.startsWith('__')) { continue; } var _type = types[typeName]; if (!isInterfaceType(_type) && !isObjectType(_type)) { continue; } references.push([typeName, fieldTarget]); } return this.expandTargets(schema, references); } var type = schema.getType(typeTarget); if (!type) { return []; } if (typeTarget === HIGHLIGHT_ROOT_QUERY) { var queryType = schema.getQueryType(); if (!queryType) { return []; } type = queryType; } if (typeTarget === HIGHLIGHT_ROOT_MUTATION) { var mutationType = schema.getMutationType(); if (!mutationType) { return []; } type = mutationType; } if (!type || !((_type2 = type) !== null && _type2 !== void 0 && _type2.name) || !('getFields' in type)) { return []; } var fields = type.getFields(); var fieldNames = fieldTarget === HIGHLIGHT_ALL ? Object.keys(fields) : [fieldTarget]; var fieldReferences = []; for (var fieldName of fieldNames) { if (fields[fieldName]) { fieldReferences.push([type.name, fieldName]); } } return fieldReferences; } } var field = function type() { for (var _len = arguments.length, targetReferences = new Array(_len), _key = 0; _key < _len; _key++) { targetReferences[_key] = arguments[_key]; } return new FieldHighlighter(targetReferences); }; export { FieldHighlighter, field }; //# sourceMappingURL=field.mjs.map