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

Function runSide

packages/effect/src/Channel.ts:6396–6423  ·  view source on GitHub ↗
(
      side: "left" | "right",
      channel: Channel<
        OutElem | OutElem1,
        OutErr | OutErr1,
        OutDone | OutDone1,
        InElem & InElem1,
        InErr & InErr1,
        InDone & InDone1,
        Env | Env1
      >,
      scope: Scope.Closeable
    )

Source from the content-addressed store, hash-verified

6394 }
6395 }
6396 const runSide = (
6397 side: "left" | "right",
6398 channel: Channel<
6399 OutElem | OutElem1,
6400 OutErr | OutErr1,
6401 OutDone | OutDone1,
6402 InElem & InElem1,
6403 InErr & InErr1,
6404 InDone & InDone1,
6405 Env | Env1
6406 >,
6407 scope: Scope.Closeable
6408 ) =>
6409 toTransform(channel)(upstream, scope).pipe(
6410 Effect.flatMap((pull) =>
6411 pull.pipe(
6412 Effect.flatMap((value) => Queue.offer(queue, value)),
6413 Effect.forever
6414 )
6415 ),
6416 Effect.onError((cause) =>
6417 Effect.andThen(
6418 Scope.close(scope, Pull.doneExitFromCause(cause)),
6419 onExit(side, cause)
6420 )
6421 ),
6422 Effect.forkIn(forkedScope)
6423 )
6424 yield* runSide("left", left, Scope.forkUnsafe(forkedScope))
6425 yield* runSide("right", right, Scope.forkUnsafe(forkedScope))
6426 return Queue.take(queue)

Callers 1

Channel.tsFile · 0.85

Calls 6

toTransformFunction · 0.85
offerMethod · 0.80
onErrorMethod · 0.80
onExitFunction · 0.70
pipeMethod · 0.65
closeMethod · 0.65

Tested by

no test coverage detected