sedk-mysql
Version:
Simple SQL builder and validator for MySQL
172 lines • 7.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateColumn = void 0;
const binder_1 = require("../binder");
const Column_1 = require("./Column");
const models_1 = require("../models");
const operators_1 = require("../operators");
const singletoneConstants_1 = require("../singletoneConstants");
const UpdateSetItemInfo_1 = require("../UpdateSetItemInfo");
class DateColumn extends Column_1.Column {
constructor(data) {
super(data);
}
isEq(value) {
const qualifier = value === null ? operators_1.NullOperator.Is : operators_1.ComparisonOperator.Equal;
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: qualifier,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
eq(value) {
if (value === null || value instanceof singletoneConstants_1.Default) {
return new UpdateSetItemInfo_1.UpdateSetItemInfo(this, value);
}
return new models_1.UpdateCondition(this, models_1.Expression.getSimpleExp(value));
}
isEq$(value) {
const qualifier = value === null ? operators_1.NullOperator.Is : operators_1.ComparisonOperator.Equal;
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: qualifier,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
eq$(value) {
const binder = new binder_1.Binder(value);
if (value === null) {
return new UpdateSetItemInfo_1.UpdateSetItemInfo(this, models_1.Expression.getSimpleExp(binder));
}
return new models_1.UpdateCondition(this, models_1.Expression.getSimpleExp(binder));
}
isNe(value) {
const qualifier = value === null ? operators_1.NullOperator.IsNot : operators_1.ComparisonOperator.NotEqual;
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: qualifier,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
ne(value) {
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.NotEqual,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
isNe$(value) {
const qualifier = value === null ? operators_1.NullOperator.IsNot : operators_1.ComparisonOperator.NotEqual;
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: qualifier,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
ne$(value) {
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.NotEqual,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
gt(value) {
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.GreaterThan,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
gt$(value) {
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.GreaterThan,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
ge(value) {
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.GreaterOrEqual,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
ge$(value) {
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.GreaterOrEqual,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
lt(value) {
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.LesserThan,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
lt$(value) {
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.LesserThan,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
le(value) {
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.LesserOrEqual,
rightExpression: models_1.Expression.getSimpleExp(value),
});
}
le$(value) {
const binder = new binder_1.Binder(value);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.LesserOrEqual,
rightExpression: models_1.Expression.getSimpleExp(binder),
});
}
in(...values) {
Column_1.Column.throwIfArrayIsEmpty(values, operators_1.ComparisonOperator.In);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.In,
rightExpression: models_1.Expression.getSimpleExp(values),
});
}
in$(...values) {
Column_1.Column.throwIfArrayIsEmpty(values, operators_1.ComparisonOperator.In);
const binderArray = new binder_1.BinderArray(values.map(it => new binder_1.Binder(it)));
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.In,
rightExpression: models_1.Expression.getSimpleExp(binderArray),
});
}
notIn(...values) {
Column_1.Column.throwIfArrayIsEmpty(values, operators_1.ComparisonOperator.NotIn);
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.NotIn,
rightExpression: models_1.Expression.getSimpleExp(values),
});
}
notIn$(...values) {
Column_1.Column.throwIfArrayIsEmpty(values, operators_1.ComparisonOperator.NotIn);
const binderArray = new binder_1.BinderArray(values.map(it => new binder_1.Binder(it)));
return new models_1.Condition({
leftExpression: models_1.Expression.getSimpleExp(this),
operator: operators_1.ComparisonOperator.NotIn,
rightExpression: models_1.Expression.getSimpleExp(binderArray),
});
}
}
exports.DateColumn = DateColumn;
//# sourceMappingURL=DateColumn.js.map