@graffy/common
Version:
Common libraries that used by various Graffy modules.
206 lines (153 loc) • 5.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = mergeStreams;
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/get-iterator"));
var _isArray3 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
var _some = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/some"));
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/wrapAsyncGenerator"));
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/awaitAsyncGenerator"));
var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncIterator"));
var _asyncGeneratorDelegate2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncGeneratorDelegate"));
var _mergeAsyncIterators = _interopRequireDefault(require("merge-async-iterators"));
var _merge = _interopRequireDefault(require("./merge"));
function mergeStreams() {
return _mergeStreams.apply(this, arguments);
}
function _mergeStreams() {
_mergeStreams = (0, _wrapAsyncGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee() {
var _context;
var _len,
streams,
_key,
firstValues,
_iterator,
_isArray,
_i,
_ref,
value,
merged,
_iterator2,
_isArray2,
_i2,
_ref2,
_value,
_args = arguments;
return _regenerator["default"].wrap(function _callee$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
for (_len = _args.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {
streams[_key] = _args[_key];
}
_context2.t0 = _map["default"];
_context2.next = 4;
return (0, _awaitAsyncGenerator2["default"])(_promise["default"].all((0, _map["default"])(streams).call(streams, function (stream) {
return stream.next();
})));
case 4:
_context2.t1 = _context = _context2.sent;
_context2.t2 = _context;
_context2.t3 = function (iter) {
return iter.value;
};
firstValues = (0, _context2.t0)(_context2.t1).call(_context2.t2, _context2.t3);
if (!(0, _some["default"])(firstValues).call(firstValues, function (value) {
return typeof value === 'undefined';
})) {
_context2.next = 30;
break;
}
_context2.next = 11;
return undefined;
case 11:
_iterator = firstValues, _isArray = (0, _isArray3["default"])(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator2["default"])(_iterator);
case 12:
if (!_isArray) {
_context2.next = 18;
break;
}
if (!(_i >= _iterator.length)) {
_context2.next = 15;
break;
}
return _context2.abrupt("break", 28);
case 15:
_ref = _iterator[_i++];
_context2.next = 22;
break;
case 18:
_i = _iterator.next();
if (!_i.done) {
_context2.next = 21;
break;
}
return _context2.abrupt("break", 28);
case 21:
_ref = _i.value;
case 22:
value = _ref;
if (!(typeof value !== 'undefined')) {
_context2.next = 26;
break;
}
_context2.next = 26;
return value;
case 26:
_context2.next = 12;
break;
case 28:
_context2.next = 48;
break;
case 30:
merged = [];
_iterator2 = firstValues, _isArray2 = (0, _isArray3["default"])(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator2["default"])(_iterator2);
case 32:
if (!_isArray2) {
_context2.next = 38;
break;
}
if (!(_i2 >= _iterator2.length)) {
_context2.next = 35;
break;
}
return _context2.abrupt("break", 46);
case 35:
_ref2 = _iterator2[_i2++];
_context2.next = 42;
break;
case 38:
_i2 = _iterator2.next();
if (!_i2.done) {
_context2.next = 41;
break;
}
return _context2.abrupt("break", 46);
case 41:
_ref2 = _i2.value;
case 42:
_value = _ref2;
(0, _merge["default"])(merged, _value);
case 44:
_context2.next = 32;
break;
case 46:
_context2.next = 48;
return merged;
case 48:
return _context2.delegateYield((0, _asyncGeneratorDelegate2["default"])((0, _asyncIterator2["default"])((0, _mergeAsyncIterators["default"])(streams)), _awaitAsyncGenerator2["default"]), "t4", 49);
case 49:
case "end":
return _context2.stop();
}
}
}, _callee);
}));
return _mergeStreams.apply(this, arguments);
}
module.exports = exports.default;