UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

37 lines (36 loc) 920 B
import { SerializationType } from '../enums.js'; import { Serializable } from '../serializable.js'; export class MinStatement extends Serializable { _expression; _alias; constructor(expression) { super(); this._expression = expression; } get _type() { return SerializationType.MIN_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 'min(' + o + ')' + (this._alias ? ' ' + this._alias : ''); } }