UNPKG

lite-ui-sql-parser

Version:
79 lines (70 loc) 2.39 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "./column", "./index-definition", "./tables", "./expr", "./util"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("./column"), require("./index-definition"), require("./tables"), require("./expr"), require("./util")); } else { var mod = { exports: {} }; factory(mod.exports, global.column, global.indexDefinition, global.tables, global.expr, global.util); global.alter = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _column, _indexDefinition, _tables, _expr, _util) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.alterToSQL = alterToSQL; _exports.alterExprToSQL = alterExprToSQL; function alterToSQL(stmt) { const { type, table, expr = [] } = stmt; const action = (0, _util.toUpper)(type); const tableName = (0, _tables.tablesToSQL)(table); const exprList = expr.map(_expr.exprToSQL); const result = [action, 'TABLE', tableName, exprList.join(', ')]; return result.filter(_util.hasVal).join(' '); } function alterExprToSQL(expr) { const { action, if_not_exists: ifNotExists, keyword, resource } = expr; const actionUpper = (0, _util.toUpper)(action); const keyWordUpper = (0, _util.toUpper)(keyword); const ifNotExistsUpper = (0, _util.toUpper)(ifNotExists); let name = ''; let dataType = ''; switch (resource) { case 'column': dataType = (0, _column.columnDefinitionToSQL)(expr); break; case 'index': dataType = (0, _indexDefinition.indexTypeAndOptionToSQL)(expr); dataType = dataType.filter(_util.hasVal).join(' '); name = expr[resource]; break; case 'table': name = (0, _util.identifierToSql)(expr[resource]); break; case 'algorithm': case 'lock': name = `= ${expr[resource]}`; break; default: break; } const alterArray = [actionUpper]; alterArray.push(keyWordUpper); alterArray.push(ifNotExistsUpper); alterArray.push(name); alterArray.push(dataType); return alterArray.filter(_util.hasVal).join(' '); } });