@restorecommerce/chassis-srv
Version:
Restore Commerce microservice chassis
31 lines • 1.01 kB
JavaScript
/**
* A key, value map containing database providers.
* Database providers are registered with the register function.
*/
const databases = {};
/**
* Register a database provider.
*
* @param {string} name database provider identifier
* @param {constructor} provider database provider constructor function
*/
export const register = (name, provider) => {
databases[name] = provider;
};
import { create as arangodb } from './provider/arango/index.js';
// Add default providers
register('arango', arangodb);
/**
* Get a new database connection.
* @param {Object} config Database configuration.
* @param [Logger] logger
* @return {Promise} New, active and ready database connection.
*/
export const get = async (config, logger, graphName, edgeConfig) => {
const db = databases[config.provider];
if (!db) {
throw new Error(`database provider ${config.provider} does not exist`);
}
return db(config, logger, graphName, edgeConfig);
};
//# sourceMappingURL=index.js.map