graphql-mocks
Version:
Tools for setting up graphql test resolvers
40 lines (34 loc) • 1.43 kB
JavaScript
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