@riao/dbal
Version:
95 lines • 3.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DatabaseFunctions = void 0;
const expression_token_1 = require("../expression/expression-token");
const column_1 = require("../column");
const function_token_1 = require("./function-token");
class DatabaseFunctions {
// ------------------------------------------------------------------------
// ID functions
// ------------------------------------------------------------------------
static uuid() {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.UUID,
type: column_1.ColumnType.VARCHAR,
};
}
// ------------------------------------------------------------------------
// Math functions
// ------------------------------------------------------------------------
static average(expr, options = {}) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.AVERAGE,
type: column_1.ColumnType.BIGINT,
params: {
expr,
options,
},
};
}
static count(params = {}) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.COUNT,
type: column_1.ColumnType.BIGINT,
params,
};
}
static min(expr) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.MIN,
type: column_1.ColumnType.BIGINT,
params: expr,
};
}
static max(expr) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.MAX,
type: column_1.ColumnType.BIGINT,
params: expr,
};
}
static sum(expr, options = {}) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.SUM,
type: column_1.ColumnType.BIGINT,
params: {
expr,
options,
},
};
}
// ------------------------------------------------------------------------
// Date/Time functions
// ------------------------------------------------------------------------
static currentTimestamp() {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.CURRENT_TIMESTAMP,
type: column_1.ColumnType.TIMESTAMP,
};
}
static date(expr) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.DATE,
type: column_1.ColumnType.DATE,
params: { expr },
};
}
static year(expr) {
return {
riao_expr: expression_token_1.ExpressionTokenKey.FUNCTION_CALL,
fn: function_token_1.DatabaseFunctionKeys.YEAR,
type: column_1.ColumnType.INT,
params: { expr },
};
}
}
exports.DatabaseFunctions = DatabaseFunctions;
//# sourceMappingURL=functions.js.map