MCPcopy Create free account
hub / github.com/Effect-TS/effect / collectAllNLoop

Function collectAllNLoop

packages/effect/src/internal/sink.ts:94–111  ·  view source on GitHub ↗
(
  n: number,
  acc: Chunk.Chunk<In>
)

Source from the content-addressed store, hash-verified

92
93/** @internal */
94const collectAllNLoop = <In>(
95 n: number,
96 acc: Chunk.Chunk<In>
97): Channel.Channel<Chunk.Chunk<In>, Chunk.Chunk<In>, never, never, Chunk.Chunk<In>, unknown> =>
98 core.readWithCause({
99 onInput: (chunk: Chunk.Chunk<In>) => {
100 const [collected, leftovers] = Chunk.splitAt(chunk, n)
101 if (collected.length < n) {
102 return collectAllNLoop(n - collected.length, Chunk.appendAll(acc, collected))
103 }
104 if (Chunk.isEmpty(leftovers)) {
105 return core.succeed(Chunk.appendAll(acc, collected))
106 }
107 return core.flatMap(core.write(leftovers), () => core.succeed(Chunk.appendAll(acc, collected)))
108 },
109 onFailure: core.failCause,
110 onDone: () => core.succeed(acc)
111 })
112
113/** @internal */
114export const collectAllFrom = <A, In, L extends In, E, R>(

Callers 1

collectAllNFunction · 0.85

Calls 2

isEmptyMethod · 0.65
writeMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…