@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
33 lines (32 loc) • 954 B
JavaScript
;
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;