database-builder
Version:
Library to assist in creating and maintaining SQL commands.
40 lines (39 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryHelper = void 0;
var replaceable_1 = require("./replaceable");
var utils_1 = require("./utils");
var QueryHelper = /** @class */ (function () {
function QueryHelper() {
}
QueryHelper.compileWithoutParams = function (query, params) {
return replaceable_1.Replaceable.replaceArrayPattern(query, "?", this.formatParamsToInline(params));
};
QueryHelper.splitMultipleCommands = function (sql, params) {
var _this = this;
var sqls = this.getMultipleCommands(sql);
return sqls.map(function (x) {
var count = _this.countOccurrence(x, "\\?");
var r = { sql: x.trim(), params: params.splice(0, count) };
return r;
});
};
QueryHelper.isMultipleCommands = function (statement) {
return this.getMultipleCommands(statement).length > 1;
};
QueryHelper.getMultipleCommands = function (statement) {
return statement.split(";").filter(function (x) { return x.trim().length > 0; });
};
QueryHelper.countOccurrence = function (that, value) {
return (that.match(new RegExp(value, "g")) || []).length;
};
QueryHelper.formatParamsToInline = function (params) {
return params.map(function (param) {
return utils_1.Utils.isString(param) || utils_1.Utils.isBoolean(param)
? "'".concat(param, "'")
: param;
});
};
return QueryHelper;
}());
exports.QueryHelper = QueryHelper;