import { isPromise } from './isPromise'; import type { MaybePromise } from './MaybePromise'; import { nextOfAsyncIterator } from './nextOfAsyncIterator'; export function firstOfAsyncIterator(it: MaybePromise | Iterator | T>): MaybePromise { const next = nextOfAsyncIterator(it); if (isPromise(next)) { return next.then((v) => v[0]); } return next[0]; }