MCPcopy Index your code
hub / github.com/Effect-TS/effect / process

Function process

packages/effect/src/internal/stream.ts:3653–3683  ·  view source on GitHub ↗
(
              leftDone: boolean,
              rightDone: boolean
            )

Source from the content-addressed store, hash-verified

3651 ),
3652 Effect.map(([left, right]) => {
3653 const process = (
3654 leftDone: boolean,
3655 rightDone: boolean
3656 ): Channel.Channel<Chunk.Chunk<A | A2>, boolean, E | E2 | E3, E | E2 | E3, void, unknown, R> =>
3657 core.readWithCause({
3658 onInput: (bool: boolean) => {
3659 if (bool && !leftDone) {
3660 return pipe(
3661 core.fromEffect(Handoff.take(left)),
3662 core.flatMap(InternalTake.match({
3663 onEnd: () => rightDone ? core.void : process(true, rightDone),
3664 onFailure: core.failCause,
3665 onSuccess: (chunk) => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
3666 }))
3667 )
3668 }
3669 if (!bool && !rightDone) {
3670 return pipe(
3671 core.fromEffect(Handoff.take(right)),
3672 core.flatMap(InternalTake.match({
3673 onEnd: () => leftDone ? core.void : process(leftDone, true),
3674 onFailure: core.failCause,
3675 onSuccess: (chunk) => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
3676 }))
3677 )
3678 }
3679 return process(leftDone, rightDone)
3680 },
3681 onFailure: core.failCause,
3682 onDone: () => core.void
3683 })
3684 return pipe(
3685 toChannel(decider),
3686 channel.concatMap(channel.writeChunk),

Callers 2

stream.tsFile · 0.70
zipWithNextFunction · 0.70

Calls 6

fromEffectMethod · 0.80
pipeFunction · 0.70
takeMethod · 0.65
writeMethod · 0.65
mapMethod · 0.65
ofMethod · 0.65

Tested by

no test coverage detected