UNPKG

tspace-sql

Version:

mysql & postgresql query builder object relational mapping

97 lines (96 loc) 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var timestamp = function () { var d = new Date(); var year = d.getFullYear(); var month = ("0" + (d.getMonth() + 1)).slice(-2); var date = ("0" + d.getDate()).slice(-2); var hours = ("0" + d.getHours()).slice(-2); var minutes = ("0" + d.getMinutes()).slice(-2); var seconds = ("0" + d.getSeconds()).slice(-2); var now = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds; return now; }; var escapeQuery = function (str) { try { var check = str == null || str === true || str === false || Number.isInteger(str); if (check) return str; var regx = /[`+#$&*=;'"\\|,\?~]/; var res = str.split(regx).join(""); var regxs = ['DROP TABLE', 'UPDATE ', 'DELETE FROM ', 'OR ', 'SELECT ', 'FROM ', 'WHERE ']; for (var i in regxs) { if (res.includes(regxs[i])) { res = res.split(regxs[i]).join(""); } } return res; } catch (e) { return str; } }; var escapeSubQuery = function (str) { var check = str == null || str === true || str === false || Number.isInteger(str); if (check) return str; var regx = /[`+#$&;"\\|\?~]/; var res = str.split(regx).join(""); var regxs = ['DROP TABLE', 'UPDATE ', 'DELETE FROM ']; for (var i in regxs) { if (res.includes(regxs[i])) { res = res.split(regxs[i]).join(""); } } return res; }; var tableName = function (name) { var tb = name.replace(/([A-Z])/g, function (str) { return "_" + str.toLowerCase(); }).slice(1); var lastString = tb.slice(-1); var rule = ['s', 'ss', 'sh', 'ch', 'x', 'z']; if (lastString === 'y') { tb = tb.slice(0, -1) + 'ies'; } else { var checkRule = rule.indexOf(lastString) >= 0; var word = checkRule ? 'es' : 's'; tb = tb + word; } return tb; }; var columnRelation = function (name) { var _a; var matches = (_a = name === null || name === void 0 ? void 0 : name.match(/[A-Z]/g)) !== null && _a !== void 0 ? _a : []; if (matches.length > 1) { matches.forEach(function (matche, i) { if (i > 0) name = name.replace(matche, "_" + matche.toUpperCase()); }); } return "" + name.toLocaleLowerCase(); }; var generateUUID = function () { var date = +new Date(); return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16; r = (date + r) % 16 | 0; return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); }; var consoleDebug = function (logs) { console.log("\u001B[33m \n" + logs + " \n\u001B[0m"); }; var functionName = function (func) { var result = /^function\s+([\w\$]+)\s*\(/.exec(func.toString()); return result ? result[1] : 'func'; }; exports.default = { functionName: functionName, columnRelation: columnRelation, timestamp: timestamp, escape: escapeQuery, escapeSubQuery: escapeSubQuery, tableName: tableName, generateUUID: generateUUID, consoleDebug: consoleDebug };