UNPKG

lite-ui-sql-parser

Version:
54 lines (49 loc) 1.62 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "./tables", "./expr", "./util"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("./tables"), require("./expr"), require("./util")); } else { var mod = { exports: {} }; factory(mod.exports, global.tables, global.expr, global.util); global.update = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _tables, _expr, _util) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.updateToSQL = updateToSQL; /** * @param {Array} sets * @return {string} */ function setToSQL(sets) { if (!sets || sets.length === 0) return ''; const clauses = []; for (const set of sets) { let str = ''; const { table, column, value } = set; str = [table, column].filter(_util.hasVal).map(info => (0, _util.identifierToSql)(info)).join('.'); if (value) str = `${str} = ${(0, _expr.exprToSQL)(value)}`; clauses.push(str); } return clauses.join(', '); } function updateToSQL(stmt) { const { table, set, where, returning } = stmt; const clauses = ['UPDATE', (0, _tables.tablesToSQL)(table), (0, _util.commonOptionConnector)('SET', setToSQL, set), (0, _util.commonOptionConnector)('WHERE', _expr.exprToSQL, where), (0, _util.returningToSQL)(returning)]; return clauses.filter(_util.hasVal).join(' '); } });