@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
22 lines (21 loc) • 618 B
TypeScript
import type { IsomorphicIterable } from "@lou.codes/types";
/**
* Flattens one level of the given iterable or asynchronous iterable.
*
* @category Asynchronous Generators
* @example
* ```typescript
* flat([1, 2, [3, 4]]); // [1, 2, 3, 4]
* ```
* @param iterable Iterable to flatten.
* @returns Iterable with flatten items.
*/
export declare const flat: <Iterable extends IsomorphicIterable>(
iterable: Iterable,
) => Iterable extends IsomorphicIterable<infer Item> ?
Readonly<
Item extends IsomorphicIterable<infer SubItem> ?
AsyncIterableIterator<SubItem>
: AsyncIterableIterator<Item>
>
: never;