// ets_tracing: off import * as CS from "../../../../Cause/index.js" import * as O from "../../../../Option/index.js" import * as CH from "../../Channel/index.js" import * as C from "../core.js" /** * Keeps some of the errors, and terminates the fiber with the rest, using * the specified function to convert the `E` into a `Throwable`. */ export function refineOrDieWith_( self: C.Stream, pf: (e: E) => O.Option, f: (e: E) => any ): C.Stream { return new C.Stream( CH.catchAll_(self.channel, (e) => O.fold_( pf(e), () => CH.failCause(CS.die(f(e))), (e1) => CH.fail(e1) ) ) ) } /** * Keeps some of the errors, and terminates the fiber with the rest, using * the specified function to convert the `E` into a `Throwable`. * * @ets_data_first refineOrDieWith_ */ export function refineOrDieWith(pf: (e: E) => O.Option, f: (e: E) => any) { return (self: C.Stream) => refineOrDieWith_(self, pf, f) }