UNPKG

regard

Version:

Sugar-interface to access multiple data sources.

60 lines (43 loc) 1.24 kB
var _ = require('lodash'), AbstractManager = require('./abstract'); exports = module.exports = ConnectorsManager; function ConnectorsManager() { if (!(this instanceof ConnectorsManager)) { return new ConnectorsManager(); } AbstractManager.call(this); } ConnectorsManager.prototype = _.create(AbstractManager.prototype); ConnectorsManager.prototype.core = function (name) { var connector, path = '../connectors/'+name; try { connector = require(path); } catch (err) { if (err.code !== 'MODULE_NOT_FOUND' || err.message.indexOf("Cannot find module '"+path+"'") === -1) { throw err; } } return connector; }; ConnectorsManager.prototype.resolve = function (endpoint) { var connector = endpoint.connector, parent = endpoint.parent; if (_.isUndefined(connector) && _.isObject(parent)) { connector = parent.connector; } if (_.isString(connector)) { connector = this.get(connector); } if (_.isUndefined(connector)) { connector = _.find(this.data, function (value) { return _.isFunction(value.checkPath) && value.checkPath(endpoint.path); } ); } if (!_.isObject(connector)) { connector = undefined; } return connector; };