Hyperlinkv0.8.0-beta.28

Channel

Channel.fromTransformconsteffect/Channel.ts:278
<OutElem, OutErr, OutDone, InElem, InErr, InDone, EX, EnvX, Env>(
  transform: (
    upstream: Pull.Pull<InElem, InErr, InDone>,
    scope: Scope.Scope
  ) => Effect.Effect<Pull.Pull<OutElem, OutErr, OutDone, EnvX>, EX, Env>
): Channel<
  OutElem,
  Pull.ExcludeDone<OutErr> | EX,
  OutDone,
  InElem,
  InErr,
  InDone,
  Env | EnvX
>

Creates a Channel from a transformation function that operates on upstream pulls.

Example (Creating channels from transforms)

import { Channel, Effect } from "effect"

const channel = Channel.fromTransform((upstream, scope) =>
  Effect.succeed(upstream)
)
constructors
Source effect/Channel.ts:27819 lines
export const fromTransform = <OutElem, OutErr, OutDone, InElem, InErr, InDone, EX, EnvX, Env>(
  transform: (
    upstream: Pull.Pull<InElem, InErr, InDone>,
    scope: Scope.Scope
  ) => Effect.Effect<Pull.Pull<OutElem, OutErr, OutDone, EnvX>, EX, Env>
): Channel<
  OutElem,
  Pull.ExcludeDone<OutErr> | EX,
  OutDone,
  InElem,
  InErr,
  InDone,
  Env | EnvX
> => {
  const self = Object.create(ChannelProto)
  self.transform = (upstream: any, scope: Scope.Scope) =>
    Effect.catchCause(transform(upstream, scope), (cause) => Effect.succeed(Effect.failCause(cause)))
  return self
}
Referenced by 42 symbols