UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

63 lines (62 loc) 2.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SqlBaseBuilder = void 0; var utils_1 = require("../core/utils"); var SqlBaseBuilder = /** @class */ (function () { function SqlBaseBuilder(queryT, _newable, mapperTable, _alias) { if (_alias === void 0) { _alias = void 0; } this._newable = _newable; this.mapperTable = mapperTable; this._alias = _alias; this.whereCompiled = { where: "", params: [] }; this.innerUsedAliasTest = []; this.WHERE = " WHERE "; this.NEXT_VALUE_ALIAS = 0; if (utils_1.Utils.isQueryBuilder(queryT)) { this.innerUsedAliasTest.push(queryT); } this._tablename = this.createTablename(_newable, mapperTable); this._alias = this.createAlias(this._alias, this._tablename); } SqlBaseBuilder.prototype.createTablename = function (_currentTypeT, currentMapper) { return currentMapper.tableName; }; SqlBaseBuilder.prototype.createAlias = function (currentAlias, currentTablename) { return currentAlias ? currentAlias : this.createUniqueAlias(this.defaultAlias(currentTablename)); }; SqlBaseBuilder.prototype.getMapper = function () { return this.mapperTable; }; SqlBaseBuilder.prototype.hasAlias = function (alias) { if (this._alias === alias) { return true; } return !!this.innerUsedAliasTest.find(function (x) { return x.hasAlias(alias); }); }; SqlBaseBuilder.prototype.compileWhere = function (current, compiled, addCommand) { if (addCommand === void 0) { addCommand = true; } if (compiled.where.length) { current.where += "".concat((current.where.length ? " AND " : (addCommand ? this.WHERE : ""))).concat(compiled.where); current.params = current.params.concat(compiled.params); } }; SqlBaseBuilder.prototype.defaultAlias = function (tableName) { if (tableName.length > 3) { return tableName.substring(0, 3); } return tableName; }; SqlBaseBuilder.prototype.createUniqueAlias = function (aliasProposed) { aliasProposed = aliasProposed ? aliasProposed.toLowerCase() : aliasProposed; if (this.hasAlias(aliasProposed)) { return this.createUniqueAlias("".concat(aliasProposed).concat(this.NEXT_VALUE_ALIAS++)); } return aliasProposed; }; return SqlBaseBuilder; }()); exports.SqlBaseBuilder = SqlBaseBuilder;