UNPKG

node-firebird-driver-native

Version:
36 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransactionImpl = void 0; const fb_util_1 = require("./fb-util"); const impl_1 = require("node-firebird-driver/dist/lib/impl"); /** Transaction implementation. */ class TransactionImpl extends impl_1.AbstractTransaction { static async start(attachment, options) { const transaction = new TransactionImpl(attachment); return await attachment.client.statusAction(async (status) => { const tpb = (0, fb_util_1.createTpb)(options); transaction.transactionHandle = await attachment.attachmentHandle.startTransactionAsync(status, tpb.length, tpb); return transaction; }); } /** Commits and release this transaction object. */ async internalCommit() { await this.attachment.client.statusAction((status) => this.transactionHandle.commitAsync(status)); this.transactionHandle = undefined; } /** Commits and maintains this transaction object for subsequent work. */ async internalCommitRetaining() { return await this.attachment.client.statusAction((status) => this.transactionHandle.commitRetainingAsync(status)); } /** Rollbacks and release this transaction object. */ async internalRollback() { await this.attachment.client.statusAction((status) => this.transactionHandle.rollbackAsync(status)); this.transactionHandle = undefined; } /** Rollbacks and maintains this transaction object for subsequent work. */ async internalRollbackRetaining() { return await this.attachment.client.statusAction((status) => this.transactionHandle.rollbackRetainingAsync(status)); } } exports.TransactionImpl = TransactionImpl; //# sourceMappingURL=transaction.js.map