moltres-utils
Version:
Utils for Moltres apps
96 lines (76 loc) • 3.51 kB
JavaScript
require("core-js/modules/es6.object.define-property");
require("core-js/modules/es6.array.map");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es6.promise");
require("regenerator-runtime/runtime");
var _bluebird = require("bluebird");
var _ramda = require("ramda");
var _getOutNodes = _interopRequireDefault(require("./getOutNodes"));
var _traversePostorder = _interopRequireDefault(require("./traversePostorder"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var execGraph = (0, _ramda.curry)(
/*#__PURE__*/
function () {
var _ref = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee2(fn, graph) {
var promises, execNode;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
promises = {};
execNode =
/*#__PURE__*/
function () {
var _ref2 = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee(nodeGraph, node, nodeFn) {
var foundPromises;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
foundPromises = (0, _ramda.map)(function (outNode) {
return (0, _ramda.prop)(outNode, promises);
}, (0, _getOutNodes.default)(nodeGraph, node));
_context.next = 3;
return (0, _bluebird.all)(foundPromises);
case 3:
return _context.abrupt("return", nodeFn(nodeGraph.node(node), node));
case 4:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
return function execNode(_x3, _x4, _x5) {
return _ref2.apply(this, arguments);
};
}();
(0, _traversePostorder.default)(function (value, node) {
var promise = execNode(graph, node, fn);
promises = (0, _ramda.assoc)(node, promise, promises);
}, graph);
return _context2.abrupt("return", (0, _bluebird.props)(promises));
case 4:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
var _default = execGraph;
exports.default = _default;
//# sourceMappingURL=execGraph.js.map
;