iterama
Version:
Composable functional (async) iterable helpers
41 lines (38 loc) • 1.57 kB
JavaScript
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 filterAsync = function filterAsync(filterFn) {
return function (iterable) {
return _defineProperty({}, Symbol.asyncIterator, function () {
return _wrapAsyncGenerator(function* () {
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 value = _value;
if (yield _awaitAsyncGenerator(filterFn(value, i++))) {
yield value;
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
yield _awaitAsyncGenerator(_iterator.return());
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
})();
});
};
};
//# sourceMappingURL=filter-async.js.map