lite-ui-sql-parser
Version:
simple node sql parser
54 lines (49 loc) • 1.62 kB
JavaScript
(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(' ');
}
});