orange-orm
Version:
Object Relational Mapper
146 lines (132 loc) • 3.61 kB
JavaScript
const hostExpress = require('./hostExpress');
const hostLocal = require('./hostLocal');
const client = require('./client/index.js');
const map = require('./client/map');
const runtimes = require('./runtimes');
let _mySql;
let _pg;
let _pglite;
let _sqlite;
let _mssqlNative;
let _sap;
let _mssql;
let _oracle;
let _d1;
var connectViaPool = function(connectionString) {
if (connectionString.indexOf && connectionString.indexOf('mysql') === 0)
return connectViaPool.mySql.apply(null, arguments);
else if (connectionString.indexOf && connectionString.indexOf('postgres') === 0)
connectViaPool.pg.apply(null, arguments);
else
return client.apply(null, arguments);
};
connectViaPool.createPatch = client.createPatch;
connectViaPool.table = require('./table');
connectViaPool.filter = require('./emptyFilter');
connectViaPool.commit = require('./table/commit');
connectViaPool.rollback = require('./table/rollback');
connectViaPool.end = require('./pools').end;
connectViaPool.close = connectViaPool.end;
connectViaPool.log = require('./table/log').registerLogger;
connectViaPool.on = require('./table/log').on;
connectViaPool.off = require('./table/log').off;
connectViaPool.query = require('./query');
connectViaPool.lock = require('./lock');
connectViaPool.schema = require('./pg/schema');
connectViaPool.map = map.bind(null, connectViaPool);
connectViaPool.http = function(url) {
return url;
};
Object.defineProperty(connectViaPool, 'mysql', {
get: function() {
if (!_mySql)
_mySql = require('./mySql/newDatabase');
return _mySql;
}
});
Object.defineProperty(connectViaPool, 'mySql', {
get: function() {
if (!_mySql)
_mySql = require('./mySql/newDatabase');
return _mySql;
}
});
Object.defineProperty(connectViaPool, 'pglite', {
get: function() {
if (!_pglite)
_pglite = require('./pglite/newDatabase');
return _pglite;
}
});
Object.defineProperty(connectViaPool, 'postgres', {
get: function() {
if (!_pg)
if (runtimes.bun)
_pg = require('./bunPg/newDatabase');
else
_pg = require('./pg/newDatabase');
return _pg;
}
});
Object.defineProperty(connectViaPool, 'pg', {
get: function() {
if (!_pg)
if (runtimes.bun)
_pg = require('./bunPg/newDatabase');
else
_pg = require('./pg/newDatabase');
return _pg;
}
});
Object.defineProperty(connectViaPool, 'sqlite', {
get: function() {
if (!_sqlite) {
if (runtimes.deno || (runtimes.node && runtimes.node.major >= 22))
_sqlite = require('./nodeSqlite/newDatabase');
else if (runtimes.bun)
_sqlite = require('./bunSqlite/newDatabase');
else if (runtimes.node)
_sqlite = require('./sqlite3/newDatabase');
else
throw new Error('SQLite is not supported in this environment');
}
return _sqlite;
}
});
Object.defineProperty(connectViaPool, 'd1', {
get: function() {
if (!_d1)
_d1 = require('./d1/newDatabase');
return _d1;
}
});
Object.defineProperty(connectViaPool, 'mssqlNative', {
get: function() {
if (!_mssqlNative)
_mssqlNative = require('./mssql/newDatabase');
return _mssqlNative;
}
});
Object.defineProperty(connectViaPool, 'mssql', {
get: function() {
if (!_mssql)
_mssql = require('./tedious/newDatabase');
return _mssql;
}
});
Object.defineProperty(connectViaPool, 'sap', {
get: function() {
if (!_sap)
_sap = require('./sap/newDatabase');
return _sap;
}
});
Object.defineProperty(connectViaPool, 'oracle', {
get: function() {
if (!_oracle)
_oracle = require('./oracle/newDatabase');
return _oracle;
}
});
connectViaPool.express = hostExpress.bind(null, hostLocal);
module.exports = connectViaPool;