UNPKG

iterama

Version:

Composable functional (async) iterable helpers

79 lines (64 loc) 2.23 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.zipAsync = zipAsync; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); function zipAsync() { for (var _len = arguments.length, iterables = new Array(_len), _key = 0; _key < _len; _key++) { iterables[_key] = arguments[_key]; } return (0, _defineProperty2.default)({}, Symbol.asyncIterator, _regenerator.default.mark(function _callee() { var iterators, values; return _regenerator.default.async(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: iterators = iterables.map(function (i) { return i[Symbol.asyncIterator](); }); _context.prev = 1; case 2: if (!true) { _context.next = 12; break; } _context.next = 5; return _regenerator.default.awrap(Promise.all(iterators.map(function (i) { return i.next(); }))); case 5: values = _context.sent; if (!values.some(function (v) { return v.done; })) { _context.next = 8; break; } return _context.abrupt("break", 12); case 8: _context.next = 10; return values.map(function (v) { return v.value; }); case 10: _context.next = 2; break; case 12: _context.prev = 12; _context.next = 15; return _regenerator.default.awrap(Promise.all(iterators.map(function (i) { return i.return == null ? void 0 : i.return(); }))); case 15: return _context.finish(12); case 16: case "end": return _context.stop(); } } }, _callee, null, [[1,, 12, 16]], Promise); })); } //# sourceMappingURL=zip-async.js.map