UNPKG

graphql-compose-mongoose

Version:

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

45 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRecordHelperArgsOptsMap = void 0; exports.recordHelperArgs = recordHelperArgs; const graphql_compose_1 = require("graphql-compose"); const makeFieldsRecursiveNullable_1 = require("../../utils/makeFieldsRecursiveNullable"); const getRecordHelperArgsOptsMap = () => ({ isRequired: 'boolean', removeFields: 'string[]', requiredFields: 'string[]', }); exports.getRecordHelperArgsOptsMap = getRecordHelperArgsOptsMap; function recordHelperArgs(tc, opts) { if (!tc || tc.constructor.name !== 'ObjectTypeComposer') { throw new Error('First arg for recordHelperArgs() should be instance of ObjectTypeComposer.'); } if (!opts) { throw new Error('You should provide non-empty options.'); } const { prefix, suffix } = opts; let recordITC; const recordTypeName = `${prefix}${tc.getTypeName()}${suffix}`; const schemaComposer = tc.schemaComposer; if (schemaComposer.hasInstance(recordTypeName, graphql_compose_1.InputTypeComposer)) { recordITC = schemaComposer.getITC(recordTypeName); } else { recordITC = tc.getInputTypeComposer().clone(recordTypeName); } if (opts && opts.allFieldsNullable) { (0, makeFieldsRecursiveNullable_1.makeFieldsRecursiveNullable)(recordITC, { prefix, suffix }); } if (opts && opts.removeFields) { recordITC.removeField(opts.removeFields); } if (opts && opts.requiredFields) { recordITC.makeRequired(opts.requiredFields); } return { record: { type: opts.isRequired ? recordITC.NonNull : recordITC, }, }; } //# sourceMappingURL=record.js.map