UNPKG

graphql-compose-mongoose

Version:

Plugin for `graphql-compose` which derive a graphql types from a mongoose model.

41 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.composeChildTC = composeChildTC; const prepareChildResolvers_1 = require("./prepareChildResolvers"); const reorderFields_1 = require("./utils/reorderFields"); function copyBaseTcRelationsToChildTc(baseDTC, childTC) { const relations = baseDTC.getRelations(); const childRelations = childTC.getRelations(); Object.keys(relations).forEach((name) => { if (childRelations[name]) { return; } childTC.addRelation(name, relations[name]); }); return childTC; } function copyBaseTCFieldsToChildTC(baseDTC, childTC) { const baseFields = baseDTC.getFieldNames(); const childFields = childTC.getFieldNames(); for (const field of baseFields) { const isFieldExists = childFields.find((fld) => fld === field); if (isFieldExists) { childTC.extendField(field, { type: baseDTC.getField(field).type, }); } else { childTC.setField(field, baseDTC.getField(field)); } } return childTC; } function composeChildTC(baseDTC, childTC, opts) { let composedChildTC = copyBaseTcRelationsToChildTc(baseDTC, childTC); composedChildTC = copyBaseTCFieldsToChildTC(baseDTC, composedChildTC); composedChildTC.addInterface(baseDTC.getDInterface()); (0, prepareChildResolvers_1.prepareChildResolvers)(baseDTC, composedChildTC, opts); (0, reorderFields_1.reorderFields)(composedChildTC, opts.reorderFields, baseDTC.getDKey(), baseDTC.getFieldNames()); return composedChildTC; } //# sourceMappingURL=composeChildTC.js.map