db-conn-pgsql
Version:
Database Connecton Postgres SQL
52 lines • 1.39 kB
JavaScript
export class PgQueryUtils {
formatArraySql(sql) {
let rt = sql;
let pos = 0;
for (let i = 1;; i++) {
pos = rt.indexOf("?", pos);
if (pos < 0) {
break;
}
rt = rt.substring(0, pos) + `$${i}` + rt.substring(pos + 1);
pos = pos + 1;
}
return rt;
}
formatParams(sql, params) {
if (!params) {
return {
sql: sql
};
}
if (params instanceof Array) {
return {
sql: this.formatArraySql(sql),
params: params
};
}
if (params instanceof Object == false) {
throw new Error("should not here");
}
const regex = /:[a-z][a-z0-9]+/ig;
const ps = sql.match(regex);
const paramsArray = [];
if (ps == null) {
throw new Error(`No parameters defined: ${sql}`);
}
for (let p of ps) {
const name = p.substring(1);
paramsArray.push(params[name]);
}
let sqlNew = sql;
let index = 1;
for (let p of ps) {
sqlNew = sqlNew.replace(p, `$${index}`);
index++;
}
return {
sql: sqlNew,
params: paramsArray
};
}
}
//# sourceMappingURL=PgQueryUtils.js.map