@rcronin/sequelize-ibmi-mapepire
Version:
IBM i (via Mapepire) Sequelize V7 Dialect
42 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IBMiQueryInterface = void 0;
const core_1 = require("@sequelize/core");
const query_generator_typescript_js_1 = require("@sequelize/core/_non-semver-use-at-your-own-risk_/abstract-dialect/query-generator-typescript.js");
const check_js_1 = require("@sequelize/core/_non-semver-use-at-your-own-risk_/utils/check.js");
const query_interface_internal_js_1 = require("./query-interface.internal.js");
const mapepire_js_1 = require("@ibm/mapepire-js");
class IBMiQueryInterface extends core_1.AbstractQueryInterface {
#internalQueryInterface;
constructor(dialect, internalQueryInterface) {
internalQueryInterface ??= new query_interface_internal_js_1.IBMiQueryInterfaceInternal(dialect);
super(dialect, internalQueryInterface);
this.#internalQueryInterface = internalQueryInterface;
}
async _startTransaction(transaction, options) {
if (!transaction || !(transaction instanceof core_1.Transaction)) {
throw new Error('Unable to start a transaction without the transaction object.');
}
if (options) {
(0, check_js_1.rejectInvalidOptions)('startTransactionQuery', this.sequelize.dialect, query_generator_typescript_js_1.START_TRANSACTION_QUERY_SUPPORTABLE_OPTIONS, this.sequelize.dialect.supports.startTransaction, options);
}
const connection = transaction.getConnection();
await connection.execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');
}
async _commitTransaction(transaction, _options) {
if (!transaction || !(transaction instanceof core_1.Transaction)) {
throw new Error('Unable to commit a transaction without the transaction object.');
}
const connection = transaction.getConnection();
await connection.endTransaction(mapepire_js_1.States.TransactionEndType.COMMIT);
}
async _rollbackTransaction(transaction, _options) {
if (!transaction || !(transaction instanceof core_1.Transaction)) {
throw new Error('Unable to rollback a transaction without the transaction object.');
}
const connection = transaction.getConnection();
await connection.endTransaction(mapepire_js_1.States.TransactionEndType.ROLLBACK);
}
}
exports.IBMiQueryInterface = IBMiQueryInterface;
//# sourceMappingURL=query-interface.js.map