UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

33 lines (32 loc) 954 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnionQuery = void 0; const enums_js_1 = require("../enums.js"); const query_js_1 = require("./query.js"); class UnionQuery extends query_js_1.Query { _queries; _unionType; constructor(queries, unionType) { super(); this._queries = queries; this._unionType = unionType; } get _type() { return enums_js_1.SerializationType.UNION_QUERY; } /** * Performs serialization */ _serialize(ctx) { const queries = this._queries.map(q => q._serialize(ctx)); const q = { queries, unionType: this._unionType, }; return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q)); } __defaultSerialize(ctx, o) { return o.queries.join(o.unionType === 'all' ? '\nUNION ALL\n' : '\nUNION\n'); } } exports.UnionQuery = UnionQuery;