UNPKG

@rcronin/sequelize-ibmi-mapepire

Version:

IBM i (via Mapepire) Sequelize V7 Dialect

42 lines 2.42 kB
"use strict"; 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