@userlab/dx
Version:
Build efficient GraphQL backend
42 lines (41 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getConnection = exports.OrderEnumType = void 0;
var graphql_1 = require("graphql");
var sortKeyResolve_1 = require("./sortKeyResolve");
var whereResolve_1 = require("./whereResolve");
var joinMonsterResolve_1 = require("./joinMonsterResolve");
exports.OrderEnumType = new graphql_1.GraphQLEnumType({
name: 'OrderEnum',
values: {
DESC: { value: 'DESC' },
ASC: { value: 'ASC' },
},
});
var getConnection = function (_a) {
var connectionType = _a.connectionType, orderByType = _a.orderByType, whereType = _a.whereType, fields = _a.fields, uniqueKey = _a.uniqueKey, defaultOrderBy = _a.defaultOrderBy;
return {
type: connectionType,
args: {
after: { type: graphql_1.GraphQLString },
first: { type: graphql_1.GraphQLInt, defaultValue: 20 },
before: { type: graphql_1.GraphQLString },
last: { type: graphql_1.GraphQLInt },
order: { type: exports.OrderEnumType, defaultValue: 'DESC' },
orderBy: {
type: new graphql_1.GraphQLList(orderByType),
defaultValue: defaultOrderBy,
},
where: { type: whereType },
},
extensions: {
joinMonster: {
sqlPaginate: true,
sortKey: sortKeyResolve_1.sortKeyResolve({ fields: fields, uniqueKey: uniqueKey }),
where: whereResolve_1.whereResolve({ fields: fields }),
},
},
resolve: joinMonsterResolve_1.joinMonsterResolve,
};
};
exports.getConnection = getConnection;