@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
39 lines (38 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaxStatement = void 0;
const enums_js_1 = require("../enums.js");
const serializable_js_1 = require("../serializable.js");
class MaxStatement extends serializable_js_1.Serializable {
constructor(expression) {
super();
this._expression = expression;
}
get _type() {
return enums_js_1.SerializationType.MAX_STATEMENT;
}
/**
* Sets alias to case expression.
*/
as(alias) {
this._alias = alias;
return this;
}
/**
* Performs serialization
*
* @param {Object} ctx
* @return {string}
* @override
*/
_serialize(ctx) {
if (!this._expression)
return '';
const q = ctx.anyToSQL(this._expression);
return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q));
}
__defaultSerialize(ctx, o) {
return 'max(' + o + ')' + (this._alias ? ' ' + this._alias : '');
}
}
exports.MaxStatement = MaxStatement;