UNPKG

@effect-ts/system

Version:

Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.

53 lines (49 loc) 1.35 kB
// ets_tracing: off import type * as C from "../core.js" import * as CatchAll from "./catchAll.js" /** * Returns a new channel that will perform the operations of this one, until failure, and then * it will switch over to the operations of the specified fallback channel. */ export function orElse_< Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem, OutElem1, OutDone, OutDone1 >( self: C.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, that: C.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1> ): C.Channel< Env & Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem | OutElem1, OutDone | OutDone1 > { return CatchAll.catchAll_(self, (_) => that) } /** * Returns a new channel that will perform the operations of this one, until failure, and then * it will switch over to the operations of the specified fallback channel. * * @ets_data_first orElse_ */ export function orElse<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>( that: C.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1> ) { return <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>( self: C.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> ) => orElse_(self, that) }