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.
35 lines (34 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ManagedTransactionPoolQueryRunner = void 0;
const AbstractPoolQueryRunner_1 = require("./AbstractPoolQueryRunner");
class ManagedTransactionPoolQueryRunner extends AbstractPoolQueryRunner_1.AbstractPoolQueryRunner {
executeInTransaction(fn, outermostQueryRunner) {
return outermostQueryRunner.executeBeginTransaction().then(() => {
let result = fn();
if (Array.isArray(result)) {
result = this.createAllPromise(result);
}
return result.then((r) => {
return outermostQueryRunner.executeCommit().then(() => {
return r;
});
}).catch((e) => {
return outermostQueryRunner.executeRollback().then(() => {
throw e;
}, () => {
// Throw the innermost error
throw e;
});
});
});
}
executeCombined(fn1, fn2) {
return fn1().then((r1) => {
return fn2().then((r2) => {
return [r1, r2];
});
});
}
}
exports.ManagedTransactionPoolQueryRunner = ManagedTransactionPoolQueryRunner;