export default async ( it: Iterable | AsyncIterable, pred: (val: V) => boolean | Promise ): Promise => { for await (const val of it) { if (await pred(val)) { return val; } } return undefined; };