UNPKG

graphql-mocks

Version:
40 lines (34 loc) 1.43 kB
import { isTypeReference } from './is-type-reference.js'; import { getTypeForReference } from './get-type-for-reference.js'; import { isFieldReference } from './is-field-reference.js'; import { getFieldForReference } from './get-field-for-reference.js'; function buildReferenceMap(schema, references) { var map = {}; references.filter(isTypeReference).map(typeReference => getTypeForReference(schema, typeReference)).forEach(type => { if (type) { map[type.name] = { type: type }; } }); references.filter(isFieldReference).map((_ref) => { var [typeName, fieldName] = _ref; return [typeName, getFieldForReference(schema, [typeName, fieldName])]; }).forEach((_ref2) => { var [typeName, field] = _ref2; if (field) { var _map$typeName, _map$typeName$fields; var type = getTypeForReference(schema, typeName); if (!type) return; map[typeName] = (_map$typeName = map[typeName]) !== null && _map$typeName !== void 0 ? _map$typeName : { type }; if (!field) return; map[typeName].fields = (_map$typeName$fields = map[typeName].fields) !== null && _map$typeName$fields !== void 0 ? _map$typeName$fields : {}; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion map[typeName].fields[field.name] = field; } }); return map; } export { buildReferenceMap }; //# sourceMappingURL=build-reference-map.js.map