knex/test/util/db-helpers.js

86 lines
1.8 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,
drivers.CockroachDB,
2021-09-06 09:04:23 -04:00
]);
}
function isPgBasedDriverName(driverName) {
return [
drivers.PostgreSQL,
drivers.PgNative,
drivers.Redshift,
drivers.CockroachDB,
].includes(driverName);
}
function isPgDriverName(driverName) {
return [drivers.PostgreSQL, drivers.PgNative].includes(driverName);
}
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;
}
function isCockroachDB(knex) {
return getDriverName(knex) === drivers.CockroachDB;
}
/**
*
* @param knex
* @param {('pg'|'pgnative'|'pg-redshift'|'oracledb'|'mysql'|'mysql2'|'mssql'|'sqlite3'|'cockroachdb')[]} 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,
isCockroachDB,
isMysql,
isMssql,
isOracle,
isPostgreSQL,
2021-09-06 09:04:23 -04:00
isPgNative,
isPgDriverName,
2021-03-08 07:16:07 -05:00
isPgBased,
isPgBasedDriverName,
isRedshift,
isSQLite,
};