import { Awaitable } from 'justypes' export async function* flatMapAsync( iterable: Iterable | AsyncIterable , fn: (element: Awaited, index: number) => Awaitable | AsyncIterable> ): AsyncIterableIterator> { let index = 0 for await (const element of iterable) { yield* await fn(element, index) index++ } }