@n8n/typeorm
Version:
Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.
39 lines (37 loc) • 1.16 kB
JavaScript
import { DatabaseConnectionLeaseAlreadyReleasedError } from "../../error/DatabaseConnectionLeaseAlreadyReleasedError";
/**
* Represents a leased database connection. The connection is
* leased from the owner to the lease holder, and must be
* released back to the owner when no longer needed.
*/
export class LeasedDbConnection {
get connection() {
if (this.isReleased) {
throw new DatabaseConnectionLeaseAlreadyReleasedError();
}
return this._connection;
}
constructor(_connection, leaseOwner, leaseHolder) {
this._connection = _connection;
this.leaseOwner = leaseOwner;
this.leaseHolder = leaseHolder;
this.isReleased = false;
}
markAsInvalid() {
this.leaseOwner.invalidateConnection(this);
}
async release() {
if (this.isReleased) {
return;
}
this.leaseOwner.releaseConnection(this);
this.isReleased = true;
}
async requestRelease() {
if (this.isReleased) {
return;
}
this.leaseHolder.requestRelease();
}
}
//# sourceMappingURL=LeasedDbConnection.js.map