@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
46 lines (45 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReturningQuery = void 0;
const enums_js_1 = require("../enums.js");
const helpers_js_1 = require("../helpers.js");
const returning_column_js_1 = require("../sql-objects/returning-column.js");
const query_js_1 = require("./query.js");
class ReturningQuery extends query_js_1.Query {
/**
*
*/
returning(...columns) {
if (!columns)
return this;
// noinspection JSMismatchedCollectionQueryUpdate
this._returningColumns = columns.length
? columns.reduce((a, v) => {
if (v)
a.push(new returning_column_js_1.ReturningColumn(v));
return a;
}, [])
: undefined;
return this;
}
/**
*
*/
__serializeReturning(ctx) {
if (!(this._returningColumns && this._returningColumns.length))
return '';
const arr = [];
ctx.returningFields = [];
for (const t of this._returningColumns) {
const s = t._serialize(ctx);
/* istanbul ignore else */
if (s)
arr.push(s);
}
return ctx.serialize(enums_js_1.SerializationType.RETURNING_BLOCK, arr, () => {
const s = (0, helpers_js_1.printArray)(arr);
return s ? 'returning ' + s : '';
});
}
}
exports.ReturningQuery = ReturningQuery;