UNPKG

mysql-all-in-one

Version:

A package that allows you to have a complete interaction with a MYSQL database, allowing to connect to the database, retrieve data and create queries.

61 lines (60 loc) 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.placeAliasInSqlExpression = exports.sqlExp = exports.sqlCol = exports.isNotEmptyString = exports.safeApplyAlias = exports.extractTableAlias = exports.putBrackets = exports.putBackticks = exports.escapeNames = void 0; const types_1 = require("./types"); const escapeNames = (key) => key .trim() .replace(/ +/g, " ") // removes double spaces .replace(/ as /i, " ") // remove " as " not case sensitive .split(" ") .map((val) => val .split(".") .map((v) => (0, exports.putBackticks)(v)) .join(".")) .join(" "); exports.escapeNames = escapeNames; const putBackticks = (value) => value.charAt(0) === "`" && value.charAt(value.length - 1) === "`" ? value : `\`${value}\``; exports.putBackticks = putBackticks; const putBrackets = (value) => `(${value})`; exports.putBrackets = putBrackets; /** * * @param tableRef * @returns [table, alias] */ const extractTableAlias = (tableRef) => { const split = tableRef.split(" "); if (split.length !== 2) return [tableRef, tableRef]; return [split[0], split[1]]; }; exports.extractTableAlias = extractTableAlias; const safeApplyAlias = (subject, alias) => subject.indexOf(".") === -1 && alias && typeof alias === "string" ? `${alias}.${subject}` : subject; exports.safeApplyAlias = safeApplyAlias; const isNotEmptyString = (val) => val !== undefined && val !== null && typeof val === "string" && val.length !== 0; exports.isNotEmptyString = isNotEmptyString; /** * * @description Will return SqlColumn object, that is interpretated as a column, not as a string. Can be used in WHERE, sqlExpression * @example * {where: {date: sqlCol('another_table.date')}} * >> WHERE `date` = `another_table`.`date` */ const sqlCol = (column) => new types_1.SqlColumn(column); exports.sqlCol = sqlCol; const sqlExp = (column) => new types_1.SqlExp(column); exports.sqlExp = sqlExp; const placeAliasInSqlExpression = (sqlExpression, alias) => { sqlExpression.statement = sqlExpression.statement .split('__SQL__EXPRESSION__ALIAS__.') .join(typeof alias === 'string' && alias.length !== 0 ? `${alias}.` : ''); return sqlExpression; }; exports.placeAliasInSqlExpression = placeAliasInSqlExpression;