UNPKG

iterama

Version:

Composable functional (async) iterable helpers

40 lines (38 loc) 1.62 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"; import _asyncIterator from "@babel/runtime/helpers/esm/asyncIterator"; export var scanAsync = function scanAsync(scanFn, initial) { return function (iterable) { return _defineProperty({}, Symbol.asyncIterator, function () { return _wrapAsyncGenerator(function* () { var state = yield _awaitAsyncGenerator(initial); var i = 0; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError; try { for (var _iterator = _asyncIterator(iterable), _step, _value; _step = yield _awaitAsyncGenerator(_iterator.next()), _iteratorNormalCompletion = _step.done, _value = yield _awaitAsyncGenerator(_step.value), !_iteratorNormalCompletion; _iteratorNormalCompletion = true) { var _value2 = _value; state = yield _awaitAsyncGenerator(scanFn(state, _value2, i++)); yield state; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { yield _awaitAsyncGenerator(_iterator.return()); } } finally { if (_didIteratorError) { throw _iteratorError; } } } })(); }); }; }; //# sourceMappingURL=scan-async.js.map