graphql-mocks
Version:
Tools for setting up graphql test resolvers
46 lines (36 loc) • 1.58 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
var isTypeReference = require('./is-type-reference.js');
var getTypeForReference = require('./get-type-for-reference.js');
var isFieldReference = require('./is-field-reference.js');
var getFieldForReference = require('./get-field-for-reference.js');
function buildReferenceMap(schema, references) {
const map = {};
references.filter(isTypeReference.isTypeReference).map(typeReference => getTypeForReference.getTypeForReference(schema, typeReference)).forEach(type => {
if (type) {
map[type.name] = {
type: type
};
}
});
references.filter(isFieldReference.isFieldReference).map(([typeName, fieldName]) => {
return [typeName, getFieldForReference.getFieldForReference(schema, [typeName, fieldName])];
}).forEach(([typeName, field]) => {
if (field) {
var _map$typeName, _map$typeName$fields;
const type = getTypeForReference.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;
}
exports.buildReferenceMap = buildReferenceMap;
//# sourceMappingURL=build-reference-map.js.map
;