UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

29 lines (28 loc) 800 B
import { SerializationType } from '../enums.js'; import { Query } from './query.js'; export class UnionQuery extends Query { _queries; _unionType; constructor(queries, unionType) { super(); this._queries = queries; this._unionType = unionType; } get _type() { return 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'); } }