knex/test/util/db-helpers.js

65 lines
1.3 KiB
JavaScript
Raw Normal View History

2021-03-08 07:16:07 -05:00
const { get } = require('lodash');
const { DRIVER_NAMES: drivers } = require('../../lib/constants');
function getDriverName(knex) {
return get(knex, 'client.driverName', '');
}
function isPostgreSQL(knex) {
2021-09-06 09:04:23 -04:00
return isOneOfDbs(knex, [drivers.PostgreSQL, drivers.PgNative]);
}
function isPgNative(knex) {
return getDriverName(knex) === drivers.PgNative;
2021-03-08 07:16:07 -05:00
}
function isPgBased(knex) {
2021-09-06 09:04:23 -04:00
return isOneOfDbs(knex, [
drivers.PostgreSQL,
drivers.PgNative,
drivers.Redshift,
]);
}
function isMssql(knex) {
2021-03-08 07:16:07 -05:00
return getDriverName(knex) === drivers.MsSQL;
}
function isOracle(knex) {
2021-03-08 07:16:07 -05:00
return getDriverName(knex) === drivers.Oracle;
}
function isMysql(knex) {
2021-03-08 07:16:07 -05:00
return isOneOfDbs(knex, [drivers.MySQL, drivers.MySQL2]);
}
function isRedshift(knex) {
2021-03-08 07:16:07 -05:00
return getDriverName(knex) === drivers.Redshift;
}
function isSQLite(knex) {
2021-03-08 07:16:07 -05:00
return getDriverName(knex) === drivers.SQLite;
}
/**
*
* @param knex
2021-09-06 09:04:23 -04:00
* @param {('pg'|'pgnative'|'pg-redshift'|'oracledb'|'mysql'|'mysql2'|'mssql'|'sqlite3')[]} supportedDbs - supported DB values in DRIVER_NAMES from lib/constants.
* @returns {*}
*/
function isOneOfDbs(knex, supportedDbs) {
2021-03-08 07:16:07 -05:00
return supportedDbs.includes(getDriverName(knex));
}
module.exports = {
isOneOfDbs,
isMysql,
isMssql,
isOracle,
isPostgreSQL,
2021-09-06 09:04:23 -04:00
isPgNative,
2021-03-08 07:16:07 -05:00
isPgBased,
isRedshift,
isSQLite,
};