UNPKG

db-conn-pgsql

Version:

Database Connecton Postgres SQL

52 lines 1.39 kB
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