All files / iterable/src concat.ts

100% Statements 4/4
100% Branches 0/0
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232x 2x                                   4x   2x  
import { identity } from "@benneq/function";
import { flatMap } from "./flatMap";
 
/**
 * Concatenates multiple {@link Iterable}s in order.
 *
 * @example
 * ```ts
 * const iterables = [[1,2], [3,4]];
 * const concatenated = concat(iterables);
 * console.log(concatenated); // [1,2,3,4]
 * ```
 *
 * @see {@link chunk}, {@link flatMap} and {@link zip} for
 * similar operations.
 *
 * @typeParam T - the {@link Iterable} value type
 * @returns the concatenation of the {@link Iterable}s
 */
export const concat: <T>(
  iterable: Iterable<Iterable<T>>
) => IterableIterator<T> = flatMap(identity);