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

Function fromTransformBracket

packages/effect/src/Channel.ts:399–417  ·  view source on GitHub ↗
(
  f: (
    upstream: Pull.Pull<InElem, InErr, InDone>,
    scope: Scope.Scope,
    forkedScope: Scope.Scope
  ) => Effect.Effect<Pull.Pull<OutElem, OutErr, OutDone, EnvX>, EX, Env>
)

Source from the content-addressed store, hash-verified

397 * @since 4.0.0
398 */
399export const fromTransformBracket = <OutElem, OutErr, OutDone, InElem, InErr, InDone, EX, EnvX, Env>(
400 f: (
401 upstream: Pull.Pull<InElem, InErr, InDone>,
402 scope: Scope.Scope,
403 forkedScope: Scope.Scope
404 ) => Effect.Effect<Pull.Pull<OutElem, OutErr, OutDone, EnvX>, EX, Env>
405): Channel<OutElem, Pull.ExcludeDone<OutErr> | EX, OutDone, InElem, InErr, InDone, Env | EnvX> =>
406 fromTransform(
407 Effect.fnUntraced(function*(upstream, scope) {
408 const closableScope = Scope.forkUnsafe(scope)
409 const onCause = (cause: Cause.Cause<EX | OutErr | Cause.Done<OutDone>>) =>
410 Scope.close(closableScope, Pull.doneExitFromCause(cause))
411 const pull = yield* Effect.onError(
412 f(upstream, scope, closableScope),
413 onCause
414 )
415 return Effect.onError(pull, onCause)
416 })
417 )
418
419/**
420 * Converts a `Channel` back to its underlying transformation function.

Callers 3

acquireUseReleaseFunction · 0.85
mapEffectConcurrentFunction · 0.85
Channel.tsFile · 0.85

Calls 3

onErrorMethod · 0.80
fromTransformFunction · 0.70
fFunction · 0.50

Tested by

no test coverage detected