tg-knex-query-resolver
Version:
TeselaGen's Knex based query resolver
33 lines (28 loc) • 912 B
JavaScript
const expressionOperatorMap = require("./expression-map");
const logDebug = (...args) => {
if (process.env.DEBUG_TG_QUERY_RESOLVER) {
console.log(...args);
}
};
module.exports = function (filter, joinOperator) {
var op = "where";
var chainOperator = filter.chainedWith || joinOperator || undefined;
if (chainOperator) op = chainOperator + "Where";
var modifier = "";
if (filter.modifier === "not") modifier = "Not";
op += modifier;
var expressionOperator = expressionOperatorMap[filter.operator];
if (expressionOperator) {
if (typeof expressionOperator === "string") {
var expOp = {
op: op,
args: [filter.field, expressionOperator, filter.args[0]],
};
logDebug(expOp);
return expOp;
} else {
return expressionOperator(filter, chainOperator);
}
}
throw new Error("Unrecognized Expression Operator: " + filter.operator);
};