Hyperlinkv0.8.0-beta.28

Channel

Channel.mapInputErrorconsteffect/Channel.ts:2091
<InErr, InErr2, R = never>(
  f: (i: InErr2) => Effect.Effect<InErr, InErr, R>
): <OutElem, OutErr, OutDone, InElem, InDone, Env>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env | R>
) => Channel<OutElem, OutErr, OutDone, InElem, InErr2, InDone, Env>
<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, InErr2, R = never>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
  f: (i: InErr2) => Effect.Effect<InErr, InErr, R>
): Channel<OutElem, OutErr, OutDone, InElem, InErr2, InDone, Env | R>

Returns a new channel which is the same as this one but applies the given function to the input errors.

sequencing
Source effect/Channel.ts:209123 lines
export const mapInputError: {
  <InErr, InErr2, R = never>(
    f: (i: InErr2) => Effect.Effect<InErr, InErr, R>
  ): <OutElem, OutErr, OutDone, InElem, InDone, Env>(
    self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env | R>
  ) => Channel<OutElem, OutErr, OutDone, InElem, InErr2, InDone, Env>
  <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, InErr2, R = never>(
    self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
    f: (i: InErr2) => Effect.Effect<InErr, InErr, R>
  ): Channel<OutElem, OutErr, OutDone, InElem, InErr2, InDone, Env | R>
} = dual(2, <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, InErr2, R = never>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
  f: (i: InErr2) => Effect.Effect<InErr, InErr, R>
): Channel<OutElem, OutErr, OutDone, InElem, InErr2, InDone, Env | R> =>
  fromTransform((upstream, scope) =>
    toTransform(self)(
      Effect.catch(upstream, (err): Pull.Pull<never, InErr, InDone> => {
        if (Cause.isDone(err)) return Effect.fail(err)
        return Effect.flatMap(f(err), Effect.fail) as Pull.Pull<never, InErr, InDone>
      }),
      scope
    )
  ))