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