2019-09-20 12:44:24 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const VError = require('verror');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Requires a database connector
|
|
|
|
* @param {string} connector connector name
|
|
|
|
* @param {DatabaseManager} databaseManager reference to the database manager
|
|
|
|
*/
|
|
|
|
module.exports = function requireConnector(connector) {
|
|
|
|
if (!connector) {
|
2021-04-29 11:11:46 +02:00
|
|
|
throw new VError({ name: 'ConnectorError' }, 'initialize connector without name');
|
2019-09-20 12:44:24 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
2021-04-29 13:51:12 +02:00
|
|
|
require.resolve(`@strapi/connector-${connector}`);
|
2019-09-20 12:44:24 +02:00
|
|
|
} catch (error) {
|
|
|
|
throw new VError(
|
|
|
|
{ name: 'ConnectorError', cause: error },
|
|
|
|
'connector "%s" not found',
|
|
|
|
connector
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
2021-04-29 13:51:12 +02:00
|
|
|
return require(`@strapi/connector-${connector}`);
|
2019-09-20 12:44:24 +02:00
|
|
|
} catch (error) {
|
|
|
|
throw new VError(
|
|
|
|
{ name: 'ConnectorError', cause: error },
|
|
|
|
'initialize connector "%s"',
|
|
|
|
connector
|
|
|
|
);
|
|
|
|
}
|
|
|
|
};
|