UNPKG

@lou.codes/iterables

Version:
23 lines (22 loc) 590 B
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;