ts-sql-query
Version:
Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.
44 lines (43 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OracleDBPoolPromiseQueryRunner = void 0;
const oracledb_1 = require("oracledb");
const PromiseBasedPoolQueryRunner_1 = require("./PromiseBasedPoolQueryRunner");
const OracleDBQueryRunner_1 = require("./OracleDBQueryRunner");
class OracleDBPoolPromiseQueryRunner extends PromiseBasedPoolQueryRunner_1.PromiseBasedPoolQueryRunner {
constructor(promisePool) {
super();
this.promisePool = promisePool;
this.database = 'oracle';
}
useDatabase(database) {
if (database !== 'oracle') {
throw new Error('Unsupported database: ' + database + '. OracleDBPoolPromiseQueryRunner only supports oracle databases');
}
}
getNativeRunner() {
return this.promisePool;
}
addParam(params, value) {
const index = params.length;
params.push(value);
return ':' + index;
}
addOutParam(params, name) {
const index = params.length;
if (name) {
params.push({ dir: oracledb_1.BIND_OUT, as: name });
}
else {
params.push({ dir: oracledb_1.BIND_OUT });
}
return ':' + index;
}
createQueryRunner() {
return this.promisePool.then(pool => pool.getConnection()).then(connection => new OracleDBQueryRunner_1.OracleDBQueryRunner(connection));
}
releaseQueryRunner(queryRunner) {
queryRunner.getNativeRunner().close();
}
}
exports.OracleDBPoolPromiseQueryRunner = OracleDBPoolPromiseQueryRunner;