@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
21 lines (20 loc) • 611 B
JavaScript
import { createIterableIterator } from "./createIterableIterator.js";
/**
* Appends one iterable to another.
*
* @category Generators
* @example
* ```typescript
* const appendNumbers = append([0, 1, 2, 3, 4]);
*
* appendNumbers(["foo", "bar"]); // ["foo", "bar", 0, 1, 2, 3, 4]
* appendNumbers([]); // [0, 1, 2, 3, 4]
* ```
* @param tailIterable Iterable to be appended.
* @returns Curried generator function with `tailIterable` set in context.
*/
export const append = tailIterable => initialIterable =>
createIterableIterator(function* () {
yield* initialIterable;
yield* tailIterable;
});