typeorm
Version:
Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.
65 lines (63 loc) • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Connection_1 = require("./Connection");
var ConnectionNotFoundError_1 = require("../error/ConnectionNotFoundError");
var AlreadyHasActiveConnectionError_1 = require("../error/AlreadyHasActiveConnectionError");
/**
* ConnectionManager is used to store and manage multiple orm connections.
* It also provides useful factory methods to simplify connection creation.
*/
var ConnectionManager = /** @class */ (function () {
function ConnectionManager() {
// -------------------------------------------------------------------------
// Protected Properties
// -------------------------------------------------------------------------
/**
* List of connections registered in this connection manager.
*/
this.connections = [];
}
// -------------------------------------------------------------------------
// Public Methods
// -------------------------------------------------------------------------
/**
* Checks if connection with the given name exist in the manager.
*/
ConnectionManager.prototype.has = function (name) {
return !!this.connections.find(function (connection) { return connection.name === name; });
};
/**
* Gets registered connection with the given name.
* If connection name is not given then it will get a default connection.
* Throws error if connection with the given name was not found.
*/
ConnectionManager.prototype.get = function (name) {
if (name === void 0) { name = "default"; }
var connection = this.connections.find(function (connection) { return connection.name === name; });
if (!connection)
throw new ConnectionNotFoundError_1.ConnectionNotFoundError(name);
return connection;
};
/**
* Creates a new connection based on the given connection options and registers it in the manager.
* Connection won't be established, you'll need to manually call connect method to establish connection.
*/
ConnectionManager.prototype.create = function (options) {
// check if such connection is already registered
var existConnection = this.connections.find(function (connection) { return connection.name === (options.name || "default"); });
if (existConnection) {
// if connection is registered and its not closed then throw an error
if (existConnection.isConnected)
throw new AlreadyHasActiveConnectionError_1.AlreadyHasActiveConnectionError(options.name || "default");
// if its registered but closed then simply remove it from the manager
this.connections.splice(this.connections.indexOf(existConnection), 1);
}
// create a new connection
var connection = new Connection_1.Connection(options);
this.connections.push(connection);
return connection;
};
return ConnectionManager;
}());
exports.ConnectionManager = ConnectionManager;
//# sourceMappingURL=ConnectionManager.js.map