@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
8 lines (6 loc) • 317 B
text/typescript
import type { AsyncPredicate } from '../types.js'
export async function pFilter<T>(iterable: Iterable<T>, filterFn: AsyncPredicate<T>): Promise<T[]> {
const items = [...iterable]
const predicates = await Promise.all(items.map((item, i) => filterFn(item, i)))
return items.filter((_item, i) => predicates[i])
}