45 lines
913 B
JavaScript
Raw Normal View History

2021-06-17 16:17:15 +02:00
'use strict';
2022-08-08 23:33:39 +02:00
const getDialectClass = (client) => {
2021-06-17 16:17:15 +02:00
switch (client) {
case 'postgres':
2021-09-13 16:14:33 +02:00
return require('./postgresql');
2021-06-24 18:28:36 +02:00
case 'mysql':
2021-09-13 16:14:33 +02:00
return require('./mysql');
2021-06-24 18:28:36 +02:00
case 'sqlite':
2021-09-13 16:14:33 +02:00
return require('./sqlite');
2021-06-17 16:17:15 +02:00
default:
2021-12-22 19:59:03 +05:30
throw new Error(`Unknown dialect ${client}`);
2021-06-17 16:17:15 +02:00
}
};
2023-03-22 12:11:15 +01:00
const getDialectName = (client) => {
switch (client) {
case 'postgres':
return 'postgres';
case 'mysql':
case 'mysql2':
return 'mysql';
case 'sqlite':
2023-03-23 14:25:47 +01:00
case 'sqlite-legacy':
2023-03-22 12:11:15 +01:00
return 'sqlite';
default:
throw new Error(`Unknown dialect ${client}`);
}
};
2022-08-08 23:33:39 +02:00
const getDialect = (db) => {
2021-07-28 21:03:32 +02:00
const { client } = db.config.connection;
2023-03-22 12:11:15 +01:00
const dialectName = getDialectName(client);
2021-07-28 21:03:32 +02:00
2023-03-22 12:11:15 +01:00
const constructor = getDialectClass(dialectName);
2021-09-13 16:14:33 +02:00
const dialect = new constructor(db);
2023-03-22 12:11:15 +01:00
dialect.client = dialectName;
2021-07-28 21:03:32 +02:00
return dialect;
};
2021-06-17 16:17:15 +02:00
module.exports = {
getDialect,
};