@restorecommerce/chassis-srv
Version:
Restore Commerce microservice chassis
38 lines • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.get = exports.register = void 0;
/**
* 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
*/
const register = (name, provider) => {
databases[name] = provider;
};
exports.register = register;
const arango_1 = require("./provider/arango");
const nedb_1 = require("./provider/nedb");
// Add default providers
(0, exports.register)('arango', arango_1.create);
(0, exports.register)('nedb', nedb_1.create);
/**
* Get a new database connection.
* @param {Object} config Database configuration.
* @param [Logger] logger
* @return {Promise} New, active and ready database connection.
*/
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);
};
exports.get = get;
//# sourceMappingURL=index.js.map