UNPKG

@userlab/dx

Version:

Build efficient GraphQL backend

30 lines (29 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sortKeyResolve = void 0; var jsutils_1 = require("../jsutils"); // TODO: Add [NULLS [FIRST | LAST]] option var sortKeyResolve = function (_a) { var fields = _a.fields, uniqueKey = _a.uniqueKey; return function (args) { var _a; var order = args.order || 'DESC'; var key = ((_a = args.orderBy) === null || _a === void 0 ? void 0 : _a.map(function (field) { if (!fields[field]) throw new Error('Invalid orderBy key'); if (fields[field]['sqlColumn']) return fields[field]['sqlColumn']; return field; })) || []; if (jsutils_1.isArray(uniqueKey)) { uniqueKey.forEach(function (field) { return !key.includes(field) ? key.push(field) : null; }); } if (jsutils_1.isString(uniqueKey) && !key.includes(uniqueKey)) { key.push(uniqueKey); } return { order: order, key: key }; }; }; exports.sortKeyResolve = sortKeyResolve;