UNPKG

nano-queries

Version:

Simple and powerful database-agnostic query builder (SQL & NoSQL)

26 lines (24 loc) 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetExpression = void 0; const QueryBuilder_1 = require("../QueryBuilder"); const GroupExpression_1 = require("./GroupExpression"); class SetExpression extends QueryBuilder_1.QueryBuilder { constructor(...segments) { super({ join: null }); this.raw(...segments); } withParenthesis() { return new GroupExpression_1.GroupExpression(this); } getSegments() { const query = new QueryBuilder_1.QueryBuilder(); super.getSegments().forEach((item, index) => { const preparedItem = item instanceof SetExpression ? item.withParenthesis() : item; query.raw(index > 0 ? ',' : undefined, preparedItem); }); return query.getSegments(); } } exports.SetExpression = SetExpression; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNxbC9TZXRFeHByZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUErQztBQUUvQyx1REFBb0Q7QUFFcEQsTUFBYSxhQUFjLFNBQVEsMkJBQVk7SUFDOUMsWUFBWSxHQUFHLFFBQTZCO1FBQzNDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU0sZUFBZTtRQUNyQixPQUFPLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLDJCQUFZLEVBQUUsQ0FBQztRQUVqQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzNDLE1BQU0sWUFBWSxHQUNqQixJQUFJLFlBQVksYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMvRCxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNEO0FBdEJELHNDQXNCQyIsImZpbGUiOiJzcWwvU2V0RXhwcmVzc2lvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5QnVpbGRlciB9IGZyb20gJy4uL1F1ZXJ5QnVpbGRlcic7XG5pbXBvcnQgeyBJUXVlcnksIFF1ZXJ5U2VnbWVudCwgUmF3UXVlcnlQYXJhbWV0ZXIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBHcm91cEV4cHJlc3Npb24gfSBmcm9tICcuL0dyb3VwRXhwcmVzc2lvbic7XG5cbmV4cG9ydCBjbGFzcyBTZXRFeHByZXNzaW9uIGV4dGVuZHMgUXVlcnlCdWlsZGVyIGltcGxlbWVudHMgSVF1ZXJ5IHtcblx0Y29uc3RydWN0b3IoLi4uc2VnbWVudHM6IFJhd1F1ZXJ5UGFyYW1ldGVyW10pIHtcblx0XHRzdXBlcih7IGpvaW46IG51bGwgfSk7XG5cblx0XHR0aGlzLnJhdyguLi5zZWdtZW50cyk7XG5cdH1cblxuXHRwdWJsaWMgd2l0aFBhcmVudGhlc2lzKCkge1xuXHRcdHJldHVybiBuZXcgR3JvdXBFeHByZXNzaW9uKHRoaXMpO1xuXHR9XG5cblx0cHVibGljIGdldFNlZ21lbnRzKCk6IFF1ZXJ5U2VnbWVudFtdIHtcblx0XHRjb25zdCBxdWVyeSA9IG5ldyBRdWVyeUJ1aWxkZXIoKTtcblxuXHRcdHN1cGVyLmdldFNlZ21lbnRzKCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IHByZXBhcmVkSXRlbSA9XG5cdFx0XHRcdGl0ZW0gaW5zdGFuY2VvZiBTZXRFeHByZXNzaW9uID8gaXRlbS53aXRoUGFyZW50aGVzaXMoKSA6IGl0ZW07XG5cdFx0XHRxdWVyeS5yYXcoaW5kZXggPiAwID8gJywnIDogdW5kZWZpbmVkLCBwcmVwYXJlZEl0ZW0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHF1ZXJ5LmdldFNlZ21lbnRzKCk7XG5cdH1cbn1cbiJdfQ==