UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

52 lines (51 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SequenceGetterStatement = void 0; const enums_js_1 = require("../enums.js"); const serializable_js_1 = require("../serializable.js"); class SequenceGetterStatement extends serializable_js_1.Serializable { constructor(expression, next) { super(); this._expression = expression; this._next = !!next; } get _type() { return enums_js_1.SerializationType.SEQUENCE_GETTER_STATEMENT; } next(value) { this._next = value; return this; } /** * 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 = { genName: this._expression, next: this._next, alias: this._alias, }; return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q)); } __defaultSerialize(ctx, o) { return ((o.next ? 'nextval' : 'currval') + "('" + o.genName + "')" + (o.alias ? ' ' + o.alias : '')); } } exports.SequenceGetterStatement = SequenceGetterStatement;