UNPKG

tg-knex-query-resolver

Version:

TeselaGen's Knex based query resolver

135 lines (132 loc) 4.49 kB
module.exports = { greaterThan: ">", greaterThanOrEqual: '>=', lessThan: "<", lessThanOrEqual: "<=", equals: "=", notEquals:"<>", notNull: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereNotNull" : "whereNotNull", args: [filter.field] } }, isNull: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereNull" : "whereNull", args: [filter.field] } }, inList: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereIn" : "whereIn", args: [filter.field, filter.args[0]] } }, notInList: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereNotIn" : "whereNotIn", args: [filter.field, filter.args[0]] } }, between: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereBetween" : "whereBetween", args: [filter.field, [filter.args[0],filter.args[1]]] }; }, startsWithExactly: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhere" : "where", args: [filter.field,'LIKE',filter.args[0]+"%"] }; }, endsWithExactly: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhere" : "where", args: [filter.field,'LIKE',"%"+filter.args[0]] }; }, containsExactly: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhere" : "where", args: [filter.field,'LIKE',"%"+filter.args[0]+"%"] }; }, startsWith: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) LIKE ?', [filter.field, filter.args[0].toUpperCase()+"%"]] }; }, notStartsWith: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) NOT LIKE ?', [filter.field, filter.args[0].toUpperCase()+"%"]] }; }, endsWith: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) LIKE ?', [filter.field, "%"+filter.args[0].toUpperCase()]] }; }, notEndsWith: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) NOT LIKE ?', [filter.field, "%"+filter.args[0].toUpperCase()]] }; }, contains: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) LIKE ?', [filter.field, "%"+filter.args[0].toUpperCase()+"%"]] }; }, notContains: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['UPPER(??) NOT LIKE ?', [filter.field, "%"+filter.args[0].toUpperCase()+"%"]] }; }, upperCase: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ["UPPER(??) = UPPER(?)", [filter.field, filter.args[0]]] }; }, lowerCase: (filter, chainOperator) => { return { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ["LOWER(??) = LOWER(?)", [filter.field, filter.args[0]]] }; }, matchesRegex: (filter, chainOperator) => { return { op: 'matchesRegex', isDialectSpecific: true, postgres: { op: chainOperator === 'or' ? "orWhere" : "where", args: [filter.field,'~*',filter.args[0]] }, oracle: { op: chainOperator === 'or' ? "orWhereRaw" : "whereRaw", args: ['REGEXP_LIKE(??, ?)',[filter.field, filter.args[0]]] } }; }, //'dateOnly', //'subString':"" }; /* startsWith: (filter, chainOperator) => { return { op: "where", args: [filter.field,'LIKE',filter.args[0]] } // return { // op: "whereRaw", // args: [`${filter.field} LIKE ${filter.args[0]}%`] // } }, */