UNPKG

iterama

Version:

Composable functional (async) iterable helpers

103 lines (88 loc) 3.38 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"; import FixedArray from 'circularr'; import { iterateAsync } from './iterate-async'; var skipFirstAsync = function skipFirstAsync(n) { return function (iterable) { return _defineProperty({}, Symbol.asyncIterator, function () { return _wrapAsyncGenerator(function* () { var asyncGenerator = iterateAsync(iterable); var i = 0; while (i < n) { var result = yield _awaitAsyncGenerator(asyncGenerator.next()); if (result.done) { break; } i++; } var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError; try { for (var _iterator = _asyncIterator(asyncGenerator), _step, _value; _step = yield _awaitAsyncGenerator(_iterator.next()), _iteratorNormalCompletion = _step.done, _value = yield _awaitAsyncGenerator(_step.value), !_iteratorNormalCompletion; _iteratorNormalCompletion = true) { var value = _value; yield value; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { yield _awaitAsyncGenerator(_iterator.return()); } } finally { if (_didIteratorError) { throw _iteratorError; } } } })(); }); }; }; var skipLastAsync = function skipLastAsync(n) { return function (iterable) { return _defineProperty({}, Symbol.asyncIterator, function () { return _wrapAsyncGenerator(function* () { var asyncGenerator = iterateAsync(iterable); var last = new FixedArray(n); for (var i = 0; i < n; i++) { var result = yield _awaitAsyncGenerator(asyncGenerator.next()); if (result.done) { break; } last.shift(result.value); } var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2; try { for (var _iterator2 = _asyncIterator(asyncGenerator), _step2, _value2; _step2 = yield _awaitAsyncGenerator(_iterator2.next()), _iteratorNormalCompletion2 = _step2.done, _value2 = yield _awaitAsyncGenerator(_step2.value), !_iteratorNormalCompletion2; _iteratorNormalCompletion2 = true) { var value = _value2; yield last.shift(value); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { yield _awaitAsyncGenerator(_iterator2.return()); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } })(); }); }; }; export var skipAsync = function skipAsync(n) { return n < 0 ? skipLastAsync(-n) : skipFirstAsync(n); }; //# sourceMappingURL=skip-async.js.map