UNPKG

@lou.codes/iterables

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