node-firebird-driver-native
Version:
Firebird Native Driver for Node.js
36 lines • 1.78 kB
JavaScript
;
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