graphql-compose-mongoose
Version:
Plugin for `graphql-compose` which derive a graphql types from a mongoose model.
43 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.payloadRecordId = payloadRecordId;
exports.payloadRecordIds = payloadRecordIds;
const graphql_compose_1 = require("graphql-compose");
function payloadRecordId(tc, opts) {
if (opts === false)
return null;
return {
recordId: {
description: 'Document ID',
type: (opts === null || opts === void 0 ? void 0 : opts.type) ? opts.type : tc.hasField('_id') ? tc.getFieldTC('_id') : 'MongoID',
resolve: (source, _, context) => {
const doc = source === null || source === void 0 ? void 0 : source.record;
if (!doc)
return;
return (opts === null || opts === void 0 ? void 0 : opts.fn) ? opts.fn(doc, context) : doc === null || doc === void 0 ? void 0 : doc._id;
},
},
};
}
function payloadRecordIds(tc, opts) {
if (opts === false)
return null;
return {
recordIds: {
description: 'Documents IDs',
type: (opts === null || opts === void 0 ? void 0 : opts.type)
? opts.type
: tc.hasField('_id')
? (0, graphql_compose_1.toInputType)(tc.getFieldTC('_id')).NonNull.List.NonNull
: '[MongoID!]!',
resolve: (source, _, context) => {
const docs = source === null || source === void 0 ? void 0 : source.records;
if (opts === null || opts === void 0 ? void 0 : opts.fn) {
return opts.fn(docs, context);
}
return docs ? docs.map((doc) => doc === null || doc === void 0 ? void 0 : doc._id) : [];
},
},
};
}
//# sourceMappingURL=payloadRecordId.js.map