UNPKG

iterama

Version:

Composable functional (async) iterable helpers

41 lines (36 loc) 1.3 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _awaitAsyncGenerator from "@babel/runtime/helpers/esm/awaitAsyncGenerator"; import _wrapAsyncGenerator from "@babel/runtime/helpers/esm/wrapAsyncGenerator"; export function zipAsync() { for (var _len = arguments.length, iterables = new Array(_len), _key = 0; _key < _len; _key++) { iterables[_key] = arguments[_key]; } return _defineProperty({}, Symbol.asyncIterator, function () { return _wrapAsyncGenerator(function* () { var iterators = iterables.map(function (i) { return i[Symbol.asyncIterator](); }); try { while (true) { var values = yield _awaitAsyncGenerator(Promise.all(iterators.map(function (i) { return i.next(); }))); if (values.some(function (v) { return v.done; })) { break; } yield values.map(function (v) { return v.value; }); } } finally { yield _awaitAsyncGenerator(Promise.all(iterators.map(function (i) { var _i$return; return (_i$return = i.return) === null || _i$return === void 0 ? void 0 : _i$return.call(i); }))); } })(); }); } //# sourceMappingURL=zip-async.js.map