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

Function runCollectLoop

packages/effect/test/Schedule.test.ts:915–937  ·  view source on GitHub ↗
(
  driver: Schedule.ScheduleDriver<Out, In, Env>,
  input: Chunk.Chunk<In>,
  acc: Chunk.Chunk<Out>
)

Source from the content-addressed store, hash-verified

913 )
914}
915const runCollectLoop = <Env, In, Out>(
916 driver: Schedule.ScheduleDriver<Out, In, Env>,
917 input: Chunk.Chunk<In>,
918 acc: Chunk.Chunk<Out>
919): Effect.Effect<Chunk.Chunk<Out>, never, Env> => {
920 if (!Chunk.isNonEmpty(input)) {
921 return Effect.succeed(acc)
922 }
923 const head = Chunk.headNonEmpty(input)
924 const tail = Chunk.tailNonEmpty(input)
925 return driver.next(head).pipe(
926 Effect.matchEffect({
927 onFailure: () =>
928 driver.last.pipe(
929 Effect.match({
930 onFailure: () => acc,
931 onSuccess: (b) => Chunk.append(acc, b)
932 })
933 ),
934 onSuccess: (b) => runCollectLoop(driver, tail, acc.pipe(Chunk.append(b)))
935 })
936 )
937}
938const runManually = <Env, In, Out>(
939 schedule: Schedule.Schedule<Out, In, Env>,
940 inputs: Iterable<

Callers 1

runCollectFunction · 0.85

Calls 2

pipeMethod · 0.65
nextMethod · 0.65

Tested by

no test coverage detected