graph-resolver
Version:
Graph Resolver resolves a value or a list of values of a model to another, provided their intermediaries have defined relationships.
29 lines (21 loc) • 820 B
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.ensureArray = ensureArray;
exports.chainThenables = chainThenables;
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);
function ensureArray(value) {
if (!_lodash2['default'].isUndefined(value)) {
return [].concat(value);
}
}
function chainThenables(thenables, data) {
return _lodash2['default'].reduce(thenables, function (previous, current) {
return previous.map(current).then(_lodash2['default'].compact).then(_lodash2['default'].flattenDeep);
}, _bluebird2['default'].resolve(ensureArray(data)));
}