@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
23 lines (22 loc) • 590 B
TypeScript
import type {
ReadOnlyIterable,
ReadOnlyIterableIterator,
} from "@lou.codes/types";
/**
* Flattens one level of the given iterable.
*
* @category 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 ReadOnlyIterable>(
iterable: Iterable,
) => Iterable extends ReadOnlyIterable<infer Item> ?
Item extends ReadOnlyIterable<infer SubItem> ?
ReadOnlyIterableIterator<SubItem>
: ReadOnlyIterableIterator<Item>
: never;