UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

32 lines (31 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReturningColumn = void 0; const enums_js_1 = require("../enums.js"); const base_field_js_1 = require("./base-field.js"); const RETURNING_COLUMN_PATTERN = /^([a-zA-Z_]\w*) *(?:as)? *(\w+)?$/; class ReturningColumn extends base_field_js_1.BaseField { _alias; constructor(field) { super(); const m = field.match(RETURNING_COLUMN_PATTERN); if (!m) throw new TypeError(`"${field}" does not match returning column format`); this._field = m[1]; this._alias = m[2]; } get _type() { return enums_js_1.SerializationType.RETURNING_COLUMN; } _serialize(ctx) { const o = { field: this._field, alias: this._alias, }; ctx.returningFields = ctx.returningFields || []; ctx.returningFields.push(o); return ctx.serialize(this._type, o, () => ctx.escapeReserved(o.field) + (o.alias ? ' as ' + ctx.escapeReserved(o.alias) : '')); } } exports.ReturningColumn = ReturningColumn;