MCPcopy
hub / github.com/Effect-TS/effect / flatten

Function flatten

packages/effect/src/Iterable.ts:752–773  ·  view source on GitHub ↗
(self: Iterable<Iterable<A>>)

Source from the content-addressed store, hash-verified

750 * @since 2.0.0
751 */
752export const flatten = <A>(self: Iterable<Iterable<A>>): Iterable<A> => ({
753 [Symbol.iterator]() {
754 const outerIterator = self[Symbol.iterator]()
755 let innerIterator: Iterator<A> | undefined
756 function next() {
757 if (innerIterator === undefined) {
758 const next = outerIterator.next()
759 if (next.done) {
760 return next
761 }
762 innerIterator = next.value[Symbol.iterator]()
763 }
764 const result = innerIterator.next()
765 if (result.done) {
766 innerIterator = undefined
767 return next()
768 }
769 return result
770 }
771 return { next }
772 }
773})
774
775/**
776 * @category filtering

Callers 1

Iterable.tsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected