get the last (predicated) item from a source iterable
package requires a system that supports async-iteration, either natively or via down-compiling
npm install @async-generators/last --save
yarn add @async-generators/last
This package's main
entry points to a commonjs
distribution.
Additionally, the module
entry points to a es2015
distribution, which can be used by build systems, such as webpack, to directly use es2015 modules.
last()
iterates source
and returns the last item where predicate(item) == true
. if predicate
is undefined
then it simply returns the last item of the sequence. if source
contains no items, or predicate()
always returns false, then last()
returns undefined
.
source
must have a [Symbol.asyncIterator]
or [Symbol.iterator]
property. If both are present only [Symbol.asyncIterator]
is used.
example.js
const last = require('@async-generators/last').default;
async function* source() {
yield 1; yield 2; yield 3; yield 4;
}
async function main() {
console.log(await last(source(), await x => x < 4));
}
main();
Execute with the latest node.js:
node --harmony-async-iteration example.js
output:
3
This library is fully typed and can be imported using:
import last from '@async-generators/last');
It is also possible to directly execute your properly configured typescript with ts-node:
ts-node --harmony_async_iteration example.ts