tspace-sql
Version:
mysql & postgresql query builder object relational mapping
97 lines (96 loc) • 3.31 kB
JavaScript
;
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
};