refql
Version:
A Node.js and Deno library for composing and running SQL queries.
23 lines (22 loc) • 1.09 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Raw_1 = __importDefault(require("../SQLTag/Raw"));
const sql_1 = require("../SQLTag/sql");
const joinMembers = (tempMembers) => {
const members = tempMembers
.reduce((acc, member) => {
const existing = acc[member.as];
// && otherwise impossible the construct output type after concatenation (output & output2) when dealing with ignored props
const nextIsOmmitted = existing ? existing.isOmitted && member.isOmitted : member.isOmitted;
acc[member.as] = { node: member.node, isOmitted: nextIsOmmitted };
return acc;
}, {});
return Object.values(members)
.filter(m => !m.isOmitted)
.map(m => m.node)
.reduce((tag, member, idx) => tag.join(idx === 0 ? "" : ", ", Raw_1.default.isRaw(member) ? (0, sql_1.sqlX) `${member}` : member), (0, sql_1.sqlX) ``);
};
exports.default = joinMembers;
;