Hyperlinkv0.8.0-beta.28

Channel

Channel.ignoreCauseconsteffect/Channel.ts:5683
<
  Arg extends
    | Channel<any, any, any, any, any, any, any>
    | { readonly log?: boolean | Severity | undefined }
    | undefined = { readonly log?: boolean | Severity | undefined }
>(
  selfOrOptions: Arg,
  options?: { readonly log?: boolean | Severity | undefined } | undefined
): [Arg] extends [
  Channel<
    infer OutElem,
    infer _OutErr,
    infer OutDone,
    infer InElem,
    infer InErr,
    infer InDone,
    infer Env
  >
]
  ? Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env>
  : <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
      self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>
    ) => Channel<
      OutElem,
      never,
      OutDone | void,
      InElem,
      InErr,
      InDone,
      Env
    >

Ignores all errors in the channel including defects, converting them to an empty channel.

When to use

Use when a channel should become best-effort and all failure causes, including defects and interruptions, can be converted to empty output.

Details

Use the log option to emit the full Cause when the channel fails.

error handlingCause
Source effect/Channel.ts:568327 lines
export const ignoreCause: <
  Arg extends Channel<any, any, any, any, any, any, any> | {
    readonly log?: boolean | Severity | undefined
  } | undefined = {
    readonly log?: boolean | Severity | undefined
  }
>(
  selfOrOptions: Arg,
  options?: {
    readonly log?: boolean | Severity | undefined
  } | undefined
) => [Arg] extends
  [Channel<infer OutElem, infer _OutErr, infer OutDone, infer InElem, infer InErr, infer InDone, infer Env>]
  ? Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env>
  : <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
    self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>
  ) => Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> = dual(
    (args) => isChannel(args[0]),
    <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
      self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
      options?: { readonly log?: boolean | Severity | undefined } | undefined
    ): Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> => {
      if (!options?.log) return ignoreCause_(self)
      const logEffect = Effect.logWithLevel(options.log === true ? undefined : options.log)
      return ignoreCause_(tapCause(self, (cause) => logEffect(cause)))
    }
  )
Referenced by 1 symbols