UNPKG

hermit-purple-server

Version:

A Muta GraphQL APIs server

59 lines (50 loc) 6.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findOne = findOne; exports.buildManyQuery = buildManyQuery; exports.findMany = findMany; var _lodash = require("lodash"); async function findOne(knex, tableName, where) { const result = await knex(tableName).where(where).first(); return result !== null && result !== void 0 ? result : null; } function buildManyQuery(knex, tableName, options) { const { where, page, orderBy } = options; const { first, last, skip } = page || {}; const limit = first || last || 10; const offset = skip !== null && skip !== void 0 ? skip : 0; let builder = knex(tableName).limit(limit).offset(offset); if (where) { if (typeof where === 'function') { builder = where(builder); } else { builder = builder.where((0, _lodash.pickBy)(where, _lodash.identity)); } } const [orderKey, orderOfKey] = orderBy || []; if (!orderKey) return builder; if (last) { builder = builder.orderBy(orderKey, orderOfKey === 'desc' ? 'asc' : 'desc'); } else { builder = builder.orderBy(orderKey, orderOfKey); } return builder; } async function findMany(knex, tableName, options) { const data = await buildManyQuery(knex, tableName, options); const orderBy = options.orderBy; const [orderKey, orderOfKey] = orderBy || []; if (!orderKey) return data; return (0, _lodash.orderBy)(data, orderKey, orderOfKey !== null && orderOfKey !== void 0 ? orderOfKey : 'desc'); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi1teXNxbC9rbmV4LWhlbHBlci50cyJdLCJuYW1lcyI6WyJmaW5kT25lIiwia25leCIsInRhYmxlTmFtZSIsIndoZXJlIiwicmVzdWx0IiwiZmlyc3QiLCJidWlsZE1hbnlRdWVyeSIsIm9wdGlvbnMiLCJwYWdlIiwib3JkZXJCeSIsImxhc3QiLCJza2lwIiwibGltaXQiLCJvZmZzZXQiLCJidWlsZGVyIiwiaWRlbnRpdHkiLCJvcmRlcktleSIsIm9yZGVyT2ZLZXkiLCJmaW5kTWFueSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUdPLGVBQWVBLE9BQWYsQ0FDTEMsSUFESyxFQUVMQyxTQUZLLEVBR0xDLEtBSEssRUFJTDtBQUNBLFFBQU1DLE1BQU0sR0FBRyxNQUFNSCxJQUFJLENBQVVDLFNBQVYsQ0FBSixDQUNsQkMsS0FEa0IsQ0FDWkEsS0FEWSxFQUVsQkUsS0FGa0IsRUFBckI7QUFHQSxTQUFPRCxNQUFQLGFBQU9BLE1BQVAsY0FBT0EsTUFBUCxHQUFpQixJQUFqQjtBQUNEOztBQVVNLFNBQVNFLGNBQVQsQ0FDTEwsSUFESyxFQUVMQyxTQUZLLEVBR0xLLE9BSEssRUFJTDtBQUNBLFFBQU07QUFBRUosSUFBQUEsS0FBRjtBQUFTSyxJQUFBQSxJQUFUO0FBQWVDLElBQUFBO0FBQWYsTUFBMkJGLE9BQWpDO0FBQ0EsUUFBTTtBQUFFRixJQUFBQSxLQUFGO0FBQVNLLElBQUFBLElBQVQ7QUFBZUMsSUFBQUE7QUFBZixNQUF3QkgsSUFBSSxJQUFJLEVBQXRDO0FBRUEsUUFBTUksS0FBSyxHQUFHUCxLQUFLLElBQUlLLElBQVQsSUFBaUIsRUFBL0I7QUFFQSxRQUFNRyxNQUFNLEdBQUdGLElBQUgsYUFBR0EsSUFBSCxjQUFHQSxJQUFILEdBQVcsQ0FBdkI7QUFFQSxNQUFJRyxPQUFPLEdBQUdiLElBQUksQ0FBVUMsU0FBVixDQUFKLENBQ1hVLEtBRFcsQ0FDTEEsS0FESyxFQUVYQyxNQUZXLENBRUpBLE1BRkksQ0FBZDs7QUFJQSxNQUFJVixLQUFKLEVBQVc7QUFDVCxRQUFJLE9BQU9BLEtBQVAsS0FBaUIsVUFBckIsRUFBaUM7QUFDL0JXLE1BQUFBLE9BQU8sR0FBR1gsS0FBSyxDQUFDVyxPQUFELENBQWY7QUFDRCxLQUZELE1BRU87QUFDTEEsTUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNYLEtBQVIsQ0FBYyxvQkFBT0EsS0FBUCxFQUFjWSxnQkFBZCxDQUFkLENBQVY7QUFDRDtBQUNGOztBQUVELFFBQU0sQ0FBQ0MsUUFBRCxFQUFXQyxVQUFYLElBQXlCUixPQUFPLElBQUksRUFBMUM7QUFFQSxNQUFJLENBQUNPLFFBQUwsRUFBZSxPQUFPRixPQUFQOztBQUVmLE1BQUlKLElBQUosRUFBVTtBQUNSSSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0wsT0FBUixDQUFnQk8sUUFBaEIsRUFBMEJDLFVBQVUsS0FBSyxNQUFmLEdBQXdCLEtBQXhCLEdBQWdDLE1BQTFELENBQVY7QUFDRCxHQUZELE1BRU87QUFDTEgsSUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNMLE9BQVIsQ0FBZ0JPLFFBQWhCLEVBQTBCQyxVQUExQixDQUFWO0FBQ0Q7O0FBRUQsU0FBT0gsT0FBUDtBQUNEOztBQUVNLGVBQWVJLFFBQWYsQ0FDTGpCLElBREssRUFFTEMsU0FGSyxFQUdMSyxPQUhLLEVBSUw7QUFDQSxRQUFNWSxJQUFJLEdBQUcsTUFBTWIsY0FBYyxDQUFDTCxJQUFELEVBQU9DLFNBQVAsRUFBa0JLLE9BQWxCLENBQWpDO0FBRUEsUUFBTUUsT0FBTyxHQUFHRixPQUFPLENBQUNFLE9BQXhCO0FBQ0EsUUFBTSxDQUFDTyxRQUFELEVBQVdDLFVBQVgsSUFBeUJSLE9BQU8sSUFBSSxFQUExQztBQUVBLE1BQUksQ0FBQ08sUUFBTCxFQUFlLE9BQU9HLElBQVA7QUFDZixTQUFPLHFCQUFTQSxJQUFULEVBQWVILFFBQWYsRUFBeUJDLFVBQXpCLGFBQXlCQSxVQUF6QixjQUF5QkEsVUFBekIsR0FBdUMsTUFBdkMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEtuZXgsIHsgUXVlcnlCdWlsZGVyIH0gZnJvbSAna25leCc7XG5pbXBvcnQgeyBpZGVudGl0eSwgb3JkZXJCeSBhcyBfb3JkZXJCeSwgcGlja0J5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhZ2VBcmdzIH0gZnJvbSAnLi4vaGVybWl0LXR5cGVzL3NlcnZlcic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kT25lPFRSZWNvcmQgZXh0ZW5kcyB7fSA9IGFueT4oXG4gIGtuZXg6IEtuZXgsXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICB3aGVyZTogUGFydGlhbDxUUmVjb3JkPixcbikge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBrbmV4PFRSZWNvcmQ+KHRhYmxlTmFtZSlcbiAgICAud2hlcmUod2hlcmUpXG4gICAgLmZpcnN0KCk7XG4gIHJldHVybiByZXN1bHQgPz8gbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaW5kTWFueU9wdGlvbjxUUmVjb3JkIGV4dGVuZHMge30gPSBhbnk+IHtcbiAgcGFnZT86IFBhZ2VBcmdzO1xuICB3aGVyZT86XG4gICAgfCBQYXJ0aWFsPFRSZWNvcmQ+XG4gICAgfCAoKGJ1aWxkZXI6IFF1ZXJ5QnVpbGRlcjxUUmVjb3JkPikgPT4gUXVlcnlCdWlsZGVyPFRSZWNvcmQ+KTtcbiAgb3JkZXJCeT86IFtrZXlvZiBUUmVjb3JkLCAoJ2FzYycgfCAnZGVzYycpP107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1hbnlRdWVyeTxUUmVjb3JkIGV4dGVuZHMge30gPSBhbnk+KFxuICBrbmV4OiBLbmV4LFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogRmluZE1hbnlPcHRpb248VFJlY29yZD4sXG4pIHtcbiAgY29uc3QgeyB3aGVyZSwgcGFnZSwgb3JkZXJCeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgeyBmaXJzdCwgbGFzdCwgc2tpcCB9ID0gcGFnZSB8fCB7fTtcblxuICBjb25zdCBsaW1pdCA9IGZpcnN0IHx8IGxhc3QgfHwgMTA7XG5cbiAgY29uc3Qgb2Zmc2V0ID0gc2tpcCA/PyAwO1xuXG4gIGxldCBidWlsZGVyID0ga25leDxUUmVjb3JkPih0YWJsZU5hbWUpXG4gICAgLmxpbWl0KGxpbWl0KVxuICAgIC5vZmZzZXQob2Zmc2V0KTtcblxuICBpZiAod2hlcmUpIHtcbiAgICBpZiAodHlwZW9mIHdoZXJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBidWlsZGVyID0gd2hlcmUoYnVpbGRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLndoZXJlKHBpY2tCeSh3aGVyZSwgaWRlbnRpdHkpKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBbb3JkZXJLZXksIG9yZGVyT2ZLZXldID0gb3JkZXJCeSB8fCBbXTtcblxuICBpZiAoIW9yZGVyS2V5KSByZXR1cm4gYnVpbGRlcjtcblxuICBpZiAobGFzdCkge1xuICAgIGJ1aWxkZXIgPSBidWlsZGVyLm9yZGVyQnkob3JkZXJLZXksIG9yZGVyT2ZLZXkgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnKTtcbiAgfSBlbHNlIHtcbiAgICBidWlsZGVyID0gYnVpbGRlci5vcmRlckJ5KG9yZGVyS2V5LCBvcmRlck9mS2V5KTtcbiAgfVxuXG4gIHJldHVybiBidWlsZGVyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZE1hbnk8VFJlY29yZCBleHRlbmRzIHt9ID0gYW55PihcbiAga25leDogS25leCxcbiAgdGFibGVOYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEZpbmRNYW55T3B0aW9uPFRSZWNvcmQ+LFxuKSB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBidWlsZE1hbnlRdWVyeShrbmV4LCB0YWJsZU5hbWUsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IG9yZGVyQnkgPSBvcHRpb25zLm9yZGVyQnk7XG4gIGNvbnN0IFtvcmRlcktleSwgb3JkZXJPZktleV0gPSBvcmRlckJ5IHx8IFtdO1xuXG4gIGlmICghb3JkZXJLZXkpIHJldHVybiBkYXRhO1xuICByZXR1cm4gX29yZGVyQnkoZGF0YSwgb3JkZXJLZXksIG9yZGVyT2ZLZXkgPz8gJ2Rlc2MnKTtcbn1cbiJdfQ==