UNPKG

lite-ui-sql-parser

Version:
54 lines (46 loc) 1.3 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "./expr"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("./expr")); } else { var mod = { exports: {} }; factory(mod.exports, global.expr); global.binary = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _expr) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.binaryToSQL = binaryToSQL; function binaryToSQL(expr) { let { operator } = expr; let rstr = (0, _expr.exprToSQL)(expr.right); let isBetween = false; if (Array.isArray(rstr)) { switch (operator) { case '=': operator = 'IN'; break; case '!=': operator = 'NOT IN'; break; case 'BETWEEN': case 'NOT BETWEEN': isBetween = true; rstr = `${rstr[0]} AND ${rstr[1]}`; break; default: break; } if (!isBetween) rstr = `(${rstr.join(', ')})`; } const str = `${(0, _expr.exprToSQL)(expr.left)} ${operator} ${rstr}`; return expr.parentheses ? `(${str})` : str; } });