UNPKG

@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
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