import type { AsyncPredicate } from '../types.js' export async function pFilter(iterable: Iterable, filterFn: AsyncPredicate): Promise { const items = Array.from(iterable) const predicates = await Promise.all(items.map((item, i) => filterFn(item, i))) return items.filter((_item, i) => predicates[i]) }