UNPKG

graph-resolver

Version:

Graph Resolver resolves a value or a list of values of a model to another, provided their intermediaries have defined relationships.

40 lines (28 loc) 1.07 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _bluebird = require('bluebird'); var _bluebird2 = _interopRequireDefault(_bluebird); var _utilities = require('./utilities'); var _graph = require('./graph'); var Resolver = function Resolver(relationships) { if (!(0, _lodash2['default'])(relationships).map(_graph.validateRelationship).every(Boolean)) { throw new Error('Invalid Relationship'); } this.graph = (0, _graph.setupGraph)(relationships); }; Resolver.prototype.resolve = function (value, source, destination) { var methods = undefined; try { methods = (0, _graph.getPath)(this.graph, source, destination); } catch (error) { return _bluebird2['default'].reject(new Error('Invalid Arguments')); } return (0, _utilities.chainThenables)(methods, value); }; exports['default'] = Resolver; module.exports = exports['default'];