UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

46 lines (45 loc) 1.45 kB
"use strict"; 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;