UNPKG

sedk-mysql

Version:
63 lines 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.f = exports.NOT = exports.$ = exports.o = exports.e = void 0; const models_1 = require("./models"); const operators_1 = require("./operators"); const orderBy_1 = require("./orderBy"); const AggregateFunction_1 = require("./AggregateFunction"); const database_1 = require("./database"); const binder_1 = require("./binder"); function e(left, operator, right) { const l = left instanceof binder_1.Binder ? models_1.Expression.getSimpleExp(left) : left; if (operator !== undefined && right !== undefined) { const r = right instanceof binder_1.Binder ? models_1.Expression.getSimpleExp(right) : right; if ((0, operators_1.isComparisonOperator)(operator) && l instanceof models_1.Expression && r instanceof models_1.Expression) { return new models_1.Condition({ leftExpression: l, operator, rightExpression: r }); } return models_1.Expression.getComplexExp(l, operator, r); } else { return models_1.Expression.getSimpleExp(l); } } exports.e = e; function o(alias, direction, nullsPosition) { return new orderBy_1.OrderByItemInfo(alias, direction, nullsPosition); } exports.o = o; function $(value) { return new binder_1.Binder(value); } exports.$ = $; function NOT(condition) { return new models_1.Condition({ leftExpression: condition, notLeft: true }); } exports.NOT = NOT; exports.f = { sum: function (column) { return aggregateFunction(AggregateFunction_1.AggregateFunctionEnum.SUM, column); }, avg: function (column) { return aggregateFunction(AggregateFunction_1.AggregateFunctionEnum.AVG, column); }, count: function (column) { return aggregateFunction(AggregateFunction_1.AggregateFunctionEnum.COUNT, column); }, max: function (column) { return aggregateFunction(AggregateFunction_1.AggregateFunctionEnum.MAX, column); }, min: function (column) { return aggregateFunction(AggregateFunction_1.AggregateFunctionEnum.MIN, column); }, }; function aggregateFunction(functionName, column) { if (column instanceof database_1.NumberColumn || (0, models_1.isNumber)(column)) return new AggregateFunction_1.AggregateFunction(functionName, models_1.Expression.getSimpleExp(column)); else return new AggregateFunction_1.AggregateFunction(functionName, column); } //# sourceMappingURL=functions.js.map