| 733 | * } |
| 734 | * |
| 735 | * const channel = Channel.fromIteratorArray(() => numberIterator(), 2) |
| 736 | * Effect.runSync(Channel.runCollect(channel)) // => [[0, 1], [2]] |
| 737 | * ``` |
| 738 | * |
| 739 | * **Example** (Batching generator output) |
| 740 | * |
| 741 | * ```ts import.meta.vitest |
| 742 | * import { Channel, Effect } from "effect" |
| 743 | * |
| 744 | * // Create channel from a generator function |
| 745 | * function* fibonacci(): Generator<number, void, unknown> { |
| 746 | * let a = 0, b = 1 |
| 747 | * for (let i = 0; i < 5; i++) { |
| 748 | * yield a |
| 749 | * ;[a, b] = [b, a + b] |
| 750 | * } |
| 751 | * } |
| 752 | * |
| 753 | * const fibChannel = Channel.fromIteratorArray(() => fibonacci(), 3) |
| 754 | * Effect.runSync(Channel.runCollect(fibChannel)) // => [[0, 1, 1], [2, 3]] |
| 755 | * ``` |
| 756 | * |
| 757 | * @category constructors |
| 758 | * @since 4.0.0 |
| 759 | */ |
| 760 | export const fromIteratorArray = <A, L>( |
| 761 | iterator: LazyArg<Iterator<A, L>>, |
| 762 | chunkSize = DefaultChunkSize |
| 763 | ): Channel<Arr.NonEmptyReadonlyArray<A>, never, L> => { |